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.8.8.2 brings:

-  sum: improved scripting with perline and getvar commands.
-  add: perline: option -setvar x to put whole line text
        into variable x, for easy call of sub functions
        without parameters.
-  add: getvar: option -line to extract first line
        matching a pattern. allows fast table lookups
        by a unique id if text is in a variable.
-  add: hexdump: option -nolf for -pure format.
-  doc: touch: how to touch a single dir.
-  doc: filetime: how to list a single dir.
Initial Release:
-  rel: 04.09.2017, Major Update
-  sum: added new GUI tool to display status infos
        by several lights in the system tray.
        added sfk status command to control these lights.
        added more flexible rename for files and folders.
-  add: sfk xrename, a flexible rename for files and
        folder names, supporting full SFK Simple Expressions
        and many patterns per command.
-  add: sfk status, send a colored status to the SFKTray
        Windows GUI tool for display.
-  fix: fromnet: when used with command chaining
        it called following commands endless even with
        no input at all. now e.g. fromnet +filter ...
        will block until actual input data is received.
        use new option -nowait for old behaviour.
-  fix: sfk web: input conflict error after some
        commands like setvar.
-  chg: web download limit default is now 30 mb.
-  add: sfk if: warning on "rc = 0" comparison which
        should be "rc=0".
-  chg: syntax change: stat: further command name chars
        like "sfk statistics" are no longer supported.
-  doc: sfk rename: -spat example and xrename reference.

Verdict

An amazing collection of powerful command line tools. Use some individually, string others together in scripts, it's your call. If you make even occasional use of the command line, then go grab a copy of Swiss File Knife right now.