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.
- sum: easy web data access with functions
sfk web, wfilter, xex. added sfk calc to do
simple calculations. improvements of wget,
ftpclient, udpdump, find, xfind, script.
diverse bug fixes.
- inf: Compatibility Notice: sfk scripts with
quoted multi line parameters will change
their default behaviour in the future.
see "sfk label" options -qtrim and -qraw.
- dep: Deprecation Warning: sfk webreq should
no longer be used. use sfk web instead.
- chg: Compatibility Notice: sfk pause: no longer
sets a non zero shell return code if Esc
key is pressed (which was undocumented).
- add: sfk update: check for SFK updates.
- add: sfk pause: option -keyrc to set the
shell return code by ascii code of the
- add: sfk filter: option -head=n to read only
first n lines of text files.
- add: sfk filter: option -tail=n to read only
last n lines of text files.
- add: web access support with sfk filter, xex.
help text examples for web access.
- add: xe: sfk xreplace: option -astext to print
search/replace hits as plain text.
- add: sfk web, send a simple web request.
new implementation replacing webreq.
- add: sfk label: option -qtrim to strip whitespace
from quoted multiline parameters.
- add: sfk ftpserv: support for environment variables
SFK_FTP_SUSER, SFK_FTP_SPW, SFK_FTP_SRUNPW
which are used only by sfk ftpserv, not sfk ftp.
- add: sfk ftp: support for environment variables
SFK_FTP_CUSER, SFK_FTP_CPW which are used
only by sfk ftp, not sfk ftpserv.
- add: main help now lists the most important
active environment variables.
- add: full documentation of option -upat for using
unix patterns : and # under windows.
- add: option -upat2 to use sfk linux wildcard %
instead of * under windows
- add: sfk windows: set SFK_CONFIG=upat or upat2
support to use unix syntax in bash files
- add: sfk for windows now also supports environment
variable option SFK_CONFIG=wildstar:c
to support a different wildcard character.
- add: sfk calc, do a simple calculation of two values.
- add: xfind, xhexfind: option -names to show just
the names of files containing hits.
- fix: udpsend: no error on missing port or data.
- fix: find: option -justrc produced blank lines.
- add: udpdump: option -from now supports multiple
ip patterns separated by comma.
- add: udpdump: option -notfrom.
- add: wget: auto expansion of url to http://url
- chg: ftp client: "server speaks sft" message
is now shown only with -verbose.
- chg: ftp client: "using SFK_FTP_PW" message
is now shown only with -verbose.
- add: wget: option -maxwait to stop on timeout.
- opt: wget: no longer sends head request.
- add: httpserv: -raw option to send content
without any reply headers.
- fix: wget: download from a primitive server
that sends no http headers produced
incomplete first text line.
- fix: sfk gettext: did not work in many cases.
- chg: sfk if, sfk call: no longer consume chain text
without any output.
- add: sfk fromclip -h: example how to append
clipboard changes to a logfile in a loop.
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.