Tutorial by Examples: batch

Here's an example with the technique(hack) invented by the dostips forums' user Liviu: @echo off echo Printed by CMD.EXE cscript //nologo "%~f0?.wsf" //job:JS //job:VBS exit /b %errorlevel% ----END OF BATCH CODE--- <package> <job id="JS"> <script...
Anonymous functions technique uses the fact that CALL command uses internally GOTO when subroutine is called and abusing help message printing with variable double expansion: @echo off setlocal set "anonymous=/?" call :%%anonymous%% a b c 3>&1 >nul if "%0" == ...
Lets have the following file called library.cmd : @echo off echo -/-/- Batch Functions Library -/-/- :function1 echo argument1 - %1 goto :eof To execute only the :function1 without the code of the rest of the file you should put a label :function1 in the caller bat and use it lik...
This following example is created by user Michael Dillon from this answer. Consider the following script: @set @junk=1 /* @echo off cscript //nologo //E:jscript %0 %* goto :eof */ //JScript aka Javascript here This script snippet does: Execute the cscript command which calls itsel...
This is the approach proposed by the stackoverflow's user rojo which also can handle the command line arguments : <# : batch portion @echo off & setlocal (for %%I in ("%~f0";%*) do @echo(%%~I) | ^ powershell -noprofile "$argv = $input | ?{$_}; iex (${%~f0} | out-string)&q...
DOSKEY macros don't work in a batch script. However, we can use a little workaround. set DOSKEYMacro=echo Hello World %DOSKEYMacro% This script can simulate the macro function. One can also use ampersands(&) to join commands, like $T in DOSKEY. If you want a relatively large "macro&qu...
<!-- : Comment This works with both batch script and WSF. The closing tag(-->), only works in WSF. CodeSucessful in both batch and WSF?<!--: CommentTrue<!--: Comment -->False - The closing tag only works for WSF-->False
Pseudorandom Distribution Accorinding to this Stack Overflow answer, user CherryDT pointed out this code: set /a num=%random% %% 100 does not give a uniform distribution. The internal dynamic variable %random% does gives a uniform distribution, but the above code will not be a uniformed random...

Page 2 of 2