Swiss File Knife is a supercharged command line tool which crams around 100 functions into a single executable.
The program can search for files by content, or name. It's able to list the contents of directories, create or delete directory trees. And you get a lengthy list of text and file processing options: LF <> CRLF, tab <> space, hex <> binary, hex <> dec, insert string, replace string, sort string, split file, join file, more.
This would be useful in itself, but Swiss File Knife does a whole lot more. The program also includes commands to synchronise a folder tree, find duplicate files, cut video and binary files, create MD5 hashes, send UDP or HTTP requests, download HTTP files, even run instant FTP and HTTP servers.
Most of these commands deliver far more than you'd expect. The List command doesn't just list files in a directory tree, for example: it also supports a host of archive formats. And it's enormously flexible, with more than 35 switches, which can themselves be combined in many different ways, and have their output passed on to other Swiss File Knife commands.
There's also plenty of scripting support, with tools to get user input, run sequences of Swiss File Knife commands, run commands on every file in a folder, run commands in a loop, and more.
Perhaps most surprising of all, though, Swiss File Knife isn't too difficult to learn. There's a lot to explore, but the syntax of each command is relatively straightforward. When listing files, for example, there's no "-n -l -p" garbage: instead you'll use switches like -time, -hidden, -sort, -minsize, -maxsize and so on. You can probably guess what they do already. And if you can't, a truly excellent PowerShell-like local Help system explains all.
1.74 brings (Full Changelog)
- CHG: SYNTAX CHANGE: by default, sfk xfind and xtext now show complete text lines containing one or more search hits.
- CHG: COMPLETE REWORK OF SEARCH FUNCTIONS:
- CHG: SYNTAX CHANGE: sfk find: patterns starting with "-" are no longer supported directly but must be prefixed by "\".
- add: sfk csvtotab to convert comma separated data.
- add: sfk tabtocsv to convert tab separated data to csv.
- add: sfk filter -trim, -ltrim, -rtrim to remove blanks and tab characters at start or end of lines.
- add: sfk fromclip: option -ltrim and alias "sfk lclip" to remove blanks and tabs at start of lines.
- add: sfk xfind/xex -bylinelist to specify a simplified list of search terms without any totext.
- add: sfk extract is now available in base/xd.
- add: sfk view: improved help if dview is not found.
- add: xed, xex: direct reading of zip file entries.
- chg: sfk view: now passing through all non sfk options and parameters as is, like "-tab 8". parms with blanks are enquoted.
- chg: source code cleanup: removed patch.cpp and inst.cpp, integrated them into sfknet.cpp and renamed this to sfkext.cpp for easy compilation.
- chg: default replace color with theme:white now purple on windows and linux.
- chg: sfk xex -showparts now shows only part numbers then stops processing.
- chg: xreplace: improved [lstart] handling.
- chg: hexfind: now using wide hexdump.
- chg: xed, xex: without any patterns it now passes through input unmodified.
- add: sfk cmd n, print a command n from the help text as one long line.
- add: web reference info per command.