No installation. USB stick portable applications.
Swiss File Knife

a command line
multi function tool.

remove tabs
list dir sizes
find text
filter lines
find in path
collect text
instant ftp or
http server
file transfer
send text
patch text
patch binary
run own cmd
convert crlf
dup file find
md5 lists
fromto clip
split files
list latest
compare dirs
save typing
trace http
echo colors
head & tail
find classes
dep. listing
speed shell
zip search
zip dir list

Depeche View
Source Research
First Steps

using vm linux

windows GUI

the d3caster
java game engine

command line
file encryption

free external tools,
zero install effort,
usb stick compliant:

zip and unzip
diff and merge
reformat xml
reformat source

java sources

thread creation

cpp sources

log tracing
mem tracing
using printf


stat. c array
stat. java array
var. c array
var. java array
view all text
as you type
surf over text
find by click
quick copy
multi view
find nearby
find by path
location jump
skip accents
clip match
filter lines
edit text
load filter
hotkey list
receive text
send in C++
send in Java
smooth scroll
touch scroll
fly wxWidgets
fly over Qt
search Java

Swiss File Knife most recent changes


add: SFKTray Lite now supports 4 status slots.

- add: windows: fromclip +copy/move support. allows to mark filenames in cmd.exe then copy/move the marked names.

- add: sfk sel a.txt b.txt +copy out support.

- add: sfk filt in.txt -+pat +copy out support.

- add: addtovar: option -noline to not append extra linefeeds.

- add: setvar: support slash patterns by -spat.

- add: getvar: option -tofile to write variable content to a file.

- add: num: support of negative numbers.

- add: dir -juststat to show just statistics.

- add: ftpserv: -verbose now shows path info on invalid path error, -verbose=2 shows dump of input line.

- chg: ftp client: now -quiet no longer tells "no filenames from previous commands".

- fix: rmtree: short confirm "rmtree." did not work.

- fix: dir repeated with +loop showed wrong number of total bytes.

- chg: sfk dir now supports -noname.

- doc: setvar: examples for string editing.

- doc: xtext: find lines not matching a pattern.

- doc: filter: file copy examples.

Revision 3:

- rel: 01.11.2018, Major Update

- sum: improved scripting support. bugfix for scripts running in folders with spaces in their name.

- FIX: sfk batch: script did not work within folder names containing spaces, like C:\users\Foo Bar\myscript.bat. now sfk script "%~f0" with quotes is used. fixed also related commands like sfk samp sfk, sfk samp sfkbash.

- CHG: chaining: if chaining is stopped due to missing filenames it now shows a notice again by default, to avoid unexpected chain stops without any infos. the notice can no longer be suppressed by -quiet, but as always by -nonote.

- fix: option -quiet did not work globally.

- chg: chaining: -verbose no longer tells how the command chain is stepped. use -tracechain instead.

- add: general option -keepchain to never stop the command chain, even if commands that expect filenames get none.

- add: label: support for all general options.

- add: setglobalopt to set global options.

- add: chaining support with where, index, script, home.

- add: encode -base64: option -nowrap to keep output as one long line.

- fix: getcol: unexpected set of global -upat option.

- chg: sfk chars: now supports multiple code parameters.

- add: ffilter: warning on wrong parameter sequence.

- fix: copy -ltarg under windows showed source name.

- chg: zip reading: better error message on missing file.

- doc: tell: example how to print text starting with '+'.

- doc: wtou: added perline example.

- doc: if: info about limited nesting.

- doc: end: was not searchable.

- doc: status: infos about limited colors.

- doc: label: more detailed info about global options.

- doc: help opt: -tracechain.

- doc: help chain: info on "no files, stopping x".

Revision 2:

- rel: 03.10.2018, Major Update

- sum: added easy installation under windows by a double click on sfk.exe, then key 1. this copies sfk.exe to a folder c:\tools and creates a shell icon on the desktop.

- add: sfk base: optional installation when running sfk by double click from windows explorer.

- CHG: Data Change: sfk index, name under windows no longer use files directly within C:\ but only in a folder C:\zz-index, to avoid user local storage in a VirtualStore folder. use sfk name -useold to read old index files. the new behaviour allows one C:\\ index file for all users on the same windows machine.

- add: predefined variable: sys.sfkver for sfk version

- add: predefined variable: sys.numcols for number of columns available in console

- fix: getcol, tabcol: caused unexpected double execution of following chain commands.

- add: clipsrc: -h help option

- del: clipxml: does not work, no longer documented. Initial Release:

- rel: 18.09.2018, Major Update

- sum: added sfk addtovar to collect text lines in a variable, sfk crc to create crc-32 checksums, sfk difflines to list different unique lines between two text files. improved ftp client compatibility. many detail improvements for scripting, like new variable functions.

- chg: Syntax Change: command chaining no longer allows data tunneling through non consuming commands. in a chain like cmd1 +cmd2 +cmd3 +cmd4 +cmd5 it is no longer possible to send data from cmd1 to cmd3/4/5 if cmd2 uses no chain data (e.g. if, tell). this tunneling was inconsistent and caused endless conflicts by unwanted chain data in cmd3/4/5. use -keepdata or SET SFK_CONFIG=keepdata for the old behaviour which was inconsistent and worked only sometimes.

- chg: Syntax Change: sfk if: no longer passes through any chain data, as this behaviour was ambiguous and caused endless unwanted chain input. this means combinations like +xed /a/b/ +if ... +xed /b/c/ are no longer possible. use '+tif' instead, or global option -keepdata.

- add: sfk ... +tif for conditional execution requesting text and stream data explicitely.

- add: sfk ... +tgoto to jump to a label passing text and stream data explicitely.

- chg: Syntax Change: sfk md5: now only prints the checksum without filename if only a single filename is given. use option -name for the old behaviour.

- chg: Data Change: sfk getvar -line no longer appends CR or LF at extracted line.

- chg: Data Change: web: no longer produces shell return code 9 on error, but 1, to be consistent with command chaining rc.

- FIX: linux: case insensitive pattern match and text extraction did not work, esp. with xed or xex.

- CHG: improved scripting: combinations like sfk echo foo +setvar a=text sfk echo foo +setvar a +if ... setvar b=text sfk echo foo +xex ... +setvar b=1 no longer require 'then' in many cases.

- add: Simple Expressions: tag [skip] at the start of a pattern now skips this text completely and does not count it as a hit.

- chg: archive file extensions: extended the list of archive files recognized by -[q]arc by more office file extensions. for full details type: sfk help opt

- chg: no longer activating archive file read implicitely with most functions. use -[q]arc instead.

- fix: ftpserv, httpserv: unwanted listing of zip file contents instead of zip file itself.

- add: sfk addtovar, append text as lines to a variable

- add: variables: #(strpos(a,b)) and #(contains(a,b)) now searches content of variable b within text of variable a.

- add: variables: #(begins(a,'word')) now tells if text of variable a starts with word.

- chg: scripts: #(rsubstr(s,o,l)) now also supports offset/length beyond string length, producing an empty string instead of error.

- fix: scripts: #(substr(a,n)) with n beyond length of a stopped the script with "invalid variable expression". now it evaluates to an empty string.

- add: sfk variables: function #(numlines(a)) to tell number of lines in variable a.

- add: sfk md5var, create md5 hash from sfk variable content.

- add: sfk difflines, show text lines that differ between two text files or variables

- add: sfk crc, crcgento, crccheck to create and verify crc32 checksums (the same as used in zip files).

- add: sfk list: now sets return code if any matching files or dirs were found.

- add: sfk web: now sets return code 1 on any error.

- add: sfk sft: now sets return code if any files were sent.

- add: del[tree] now sets return code on failure

- add: deltree now retries a failed folder deletion 2 times with a 100 msec wait inbetween.

- add: del[tree] option -stoponerr to stop chain execution if deletion fails

- chg: del[tree] now produces a warning if deletion is incomplete.

- fix: ftp client: 30 second wait after listing of directory or file download with some servers.

- fix: run: -printcmd was ignored.

- chg: zip reading: invalid zip file now produces a warning instead of an error.

- fix: xfind, replace functions, xrename: variables were not expanded for dir parameters.

- chg: sfk run: now shows a notice if no filenames are processed on chaining.

- chg: xed, xrename now ignore empty pattern parameters instead of stopping with an error. useful for scripting with optional parms.

- chg: command chaining: -verbose now shows a notice "chaining stops before ...: no data" if execution stops due to no data.

- chg: command chaining: no longer showing "chaining stops ...: no filenames" unless -verbose is given.

- chg: sfk batch under linux: added exit after sfk call.

- chg: sfk sft cput: if no files are sent then -quiet no longer tells anything.

- add: copy -flat2 to copy all files of a dir tree to an output folder with relative names.

- add: make-random-file -lock option, to keep a file locked for testing.

- fix: xfind with -justrc: chaining to if was not possible if nothing was found.

- fix: xfind -showrc produced an error.

- add: ifnotexist, check if a file does not exist.

- add: swap, reverse chain text character order

- add: Windows: sfk clock: pressing enter now resets the relative time.

- add: Windows: sfk clock3 shows overall start time and, when pressing Enter, relative time since overall start in a second column.

- add: sfk clock2 to show just a relative time.

- add: sft client: multi file send: now showing total mb info.

- add: xed: option -tolines to force line output.

- fix: xed: listing of mem leaks if given filename cannot be read, or input too large.

- doc: end: xed -tolines reference

- doc: tofile: addtovar reference

- doc: sft: upload loop example.

- doc: index: reworked linux examples.

- doc: xfind: -showrc removed, wrong context.

- doc: filter: difflines reference.

- doc: help opt: new list of archive extensions and -qarc info

- doc: xed: reference to sfk swap

- doc: sfk help chain: data tunneling notice.

Download the free Depeche View Lite Text Search Tool