Swiss File Knife 1.8.9

The ultimate command line toolkit?



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

-  rel: 10.01.2018, Minor Update
-  sum: improved scripting error messages.
        better rename support in scripts.
        added filter option to skip first lines.
-  add: sfk renfile, rename just a single file,
        for use in sfk scripts.
-  add: filter -skipfirst=n to skip first n lines.
-  chg: -nocol given locally at a command no longer
        changes the global color mode.
-  chg: scripts: every command given like +cmdname
        can now be used in a script, no longer producing
        the error "does not support input chaining".
-  add: sfk ren, xren: option -quiet to print nothing.
-  add: sfk ren, xren: now tells number of changed files.
        option -[no]stat to show or hide statistics.
-  add: sfk rmtree: option -quiet to print nothing,
        option -stat to show statistics with -quiet.
-  fix: scripts: unknown commands were ignored silently,
        they now produce an error "unknown command".
-  fix: -memlimit=3000 did not work.
-  fix: sfk prompt help text.
-  doc: improved prompt example.
Initial Release:
-  rel: 06.12.2017, Major Update
-  sum: improved scripting with if begin endif blocks.
        better display of windows filenames on more codepages.
        added sfk rand to create random numbers,
        sfk prompt to allow user input.
        fixed xex return code handling
        and stop of script after sfk status.
-  chg: windows: improved display of european filenames
        using non latin characters in the own codepage.
-  chg: sfk batch tmp.bat: the example is now
        a short number game with status lights.
-  add: scripting: +if expr +begin ... +endif
        to execute multiple commands as one block
        if given expression is true.
-  add: scripting: easy check if a variable text contains
        a phrase by: if "#(contains(mystr,'text'))"
-  add: if: support for if "rc<>1" to check if command rc
        is different to a value.
-  add: sfk rand to create a random number.
-  add: sfk prompt to ask for user input.
-  chg: sfk status: no longer requires protocol version.
-  fix: xex: return code was always 1 if previous
        command set it, no matter if xex found data.
-  fix: fixfile: option -dewide displayed invalid date 1900...
        in simulation preview.
-  fix: possible crash on setvar with empty value.
-  fix: status: silent stop of command chain with
        some following commands like +list
-  chg: windows OSE compile support for MSVC 14.
-  chg: chaining from +tell to other commands like +setvar
        no longer requires +then.
-  chg: improved tracing of variable expansion
        by -debug like +tell -debug "#(strlen(a))"
-  doc: xex: how to check if a variable contains a word.
-  doc: help var: how to search a variable in a variable.

Verdict ratingsratingsratingsratingsratings

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.

Specification: Swiss File Knife 1.8.9:

Mac OS X,Windows XP,Windows Vista (32 bit),Windows 7 (32 bit),Windows Vista (64 bit),Windows 7 (64 bit),Windows 8,Windows Server,Linux
Open Source
StahlWorks Technologies
Date Added:
January 14, 2018