home ‣ Basics of writing DOS .bat batch files login
Set a variable: SET FOO="bar"
Refer to a variable: echo %FOO%
Command line arguments are variables %1, %2 etc.
Check if a variable is defined: IF NOT DEFINED FOO SET FOO="bar". Useful
for testing command line arguments.
Check a result code from the last executed command: IF ERRORLEVEL $n $CMD-TO-EXECUTE. It
executes the command if result code is equal or greater to $n, so to
check for any failures use 1.
Do things in a loop: FOR /L %A IN (1,1,10) DO @echo hello
Execute another script: call another.bat
Check if directory exists: IF EXIST E:\NUL GOTO USE_E
Here's an example of a batch file that does a few common things:
@ECHO OFF @rem "pushd $dir" puts $dir on directory stack pushd . SET COMMENT=%1 IF NOT DEFINED COMMENT SET COMMENT="" SET FOO="bar" IF %FOO%=="bar" goto IS_BAR echo The above should always be true goto END :IS_BAR nmake -f Makefile.vc IF ERRORLEVEL 1 goto ERR_ONE_OR_HIGHER echo Compilation successful! goto END :ERR_ONE_OR_HIGHER echo Compilation failed! goto END :END @rem popd pops the directory name from the stack and does cd there popd