![]() a command line
Depeche View
command line
free external tools,
java sources
cpp sources
articles
|
- download the free Swiss File Knife Base from Sourceforge. - open the Windows CMD command line, Mac OS X Terminal or Linux shell. - OS X : type mv sfk-mac-64.exe sfk and chmod +x sfk then ./sfk - Linux: type mv sfk-linux-64.exe sfk and chmod +x sfk then ./sfk OS X and Linux syntax may differ, check the help within the tool. ![]() sfk ... +if [opts] expression command1 ... +command2 sfk ... +[t]if expr [+]begin +cmd1a +cmd1b ... +endif +cmd2 execute command1 if expression is true, then continue to command2. if expression is not true, skip directly to command2. can be used only in a command chain, after another command. use "+if expr +begin ... +endif" to run multiple commands as one block, if expression is true. supported expressions return code comparison "rc=n" return code of previous command equal to n "rc>n" return code of previous command higher than n "rc<n" return code of previous command lower than n "rc<>n" return code of previous comm. not equal to n generic text or number comparison "l = r" left part is equal to right "l <> r" left part is not equal to right "l < r" left part is lower then right "l > r" left part is higher then right "l <= r" left part is lower or equal "l >= r" left part is higher or equal if both l and r contain only digits a numeric comparison is done, else a text comparison. options options for if must be given before expression. -var use sfk variables, must be first option -text force text comparison (nocase) -case case sensitive text comparison -debug tell what is done in a generic comparison limited nesting if ... begin ... endif - may not contain other if[exist] / begin / endif - but may contain short if ... without begin. invalid nesting causes an undefined program flow. chaining support since sfk 1.9.3 +if does not accept any chain input data, as this creates ambiguities with many following commands, like +if ... +setvar a=text +tif expects text and stream chain input data. bad example: +xed /a/b/ +if ... +xed /b/c/ data cannot be passed from the first to the second xed this way, as +if will block this. correction: +xed /a/b/ +tif ... +xed /b/c/ the +tif explicitely requests text data. you may also use global option -keepdata. for more details see: sfk help chain see also sfk ifexist check if a file or folder exists. sfk call call sub functions in a script. sfk goto jump to a local label. examples sfk filter in.txt -+err +if "rc>0" run -yes "x.bat" +echo done if file in.txt contains the word "err", run x.bat. the "echo done" is always executed. sfk xex -justrc in.txt "/foo*bar/" +if "rc=0" stop 9 "[Red]error:[def] miss" +echo "match" type this all in one line, or use "sfk cmd 18". [18] if file in.txt does not contain the search pattern then stop with return code 9, printing an error. sfk is a free open-source tool, running instantly without installation efforts. no DLL's, no registry changes - just get sfk.exe from the zip package and use it (binaries for windows, linux and mac are included). read more about all sfk functions here.
|
|