---input--- @ @@ echo off ::This is an example of the Windows batch language. setlocal EnableDelayedExpansion (cls) set/a^ _te^ sts^ =0,^ _"pa"^ ssed=0^ 0 set,/a title= Batch test title=%,/a title% echo^ %~nx0,^ the>,con comprehensive testing suite ver echo( if cmdextversion 2 goto =) goto :fail :) echo Starting tests at: date/t & time/t echo( if '%*'=='--help' ( echo Usage: %~nx0 [--help] echo --help: Display this help message and quit. shift goto :exit comment) else rem (call :comments) call ::io+x call:control:x call::internal x :exit if /i !_tests!==!_passed! ( color 02 ) else if !*==* ( color c if not defined _exit^ Code set _exit^ Code=1 ) set _percentage=NaN if defined _tests ( if !_tests! neq 0 (set/a_percentage=100*_passed/_tests) ) echo( if !_percentage!==NaN ( echo(There were no tests^^! & color e ) else ( echo Tests passed: %_passed%/%_tests% (%_percentage%%%^) ) pause color title endlocal exit /b %_exitCode% x:fail rem This should never happen. echo Internal error 1>& 269105>>&2 set /a _exitCode=0x69+(0105*1000) break goto :exit :comments (rem )/? ) rem "comment^ (rem.) & set /a _tests+=1 (rem) & goto :fail (rem. ) & (rem. comment ) & echo Test %_tests%: Comments rem ) ) )|comment )( :: comment goto :comments^^1:comment :comments^^1 comment if(1==1) goto :comments^ ^1 rem^ /? rem ^ ^ goto :comments^ 2+comment goto :fail :comments2 rem >^ if 1==1 (goto :comments3) :comments3) goto :fail :comments3 rem comment^ goto:fail rem.comment comment^ goto fail rem "comment comment"^ goto fail rem comment comment^ if "1==1" equ "1==1" goto comments4 goto fail :comments4 rem comment"comment^ set /a _passed+=1 GOTO :EOF goto :fail :IO SET /A _tests+=1 & Echo Test !_tests:*!==^!: I/O verify on pushd . if exist temp echo temp already exists. & goto :eof md temp cd temp mkdir 2>nul temp chdir temp >cd echo Checking drive... >>cd echo must be C or else this won't work for /f "tokens=* usebackq" %%G in ("cd ) do (test0^ .bat echo rem Machine-generated; do not edit call echo set /a _passed+=1 >>test0.bat type test0.bat >"test 1.bat ren "test 1.bat" test2.bat rename test2.bat test.bat caLL ^ C:test del test.bat 2>nul 2>NUL erase test0.bat popd rd temp\temp rmdir temp VERIFY OFF goto:eof :control set /a _tests+=1 echo Test %_tests%: Control statements set "_iterations=0">nul for %%G in (,+,,-, ) do @( for /l %%H in (,-1;;-1 -3,) do ( for /f tokens^=1-2^,5 %%I in ("2 %%H _ _ 10") do ( for /f "tokens=1 usebackq" %%L in ( `echo %%G%%J ``` ` ` ` ) do ( for /f "tokens=2" %%M in ('echo ' %%L0 ' ' ' ) do ( set /a _iterations+=(%%M%%M^) ) ) ) ) ) if exist %~nx0 if not exist %~nx0 goto :fail if exist %~nx0 ( if not exist %~nx0 goto :fail ) else ( if exist %~nx0 goto :fail ) if /i %_iterations% gtr -2 ( if /i %_iterations% geq -1 ( if /i %_iterations% lss 1 ( if /i %_iterations% leq 0 ( if /i %_iterations% equ 0 ( if 1 equ 01 ( if 1 neq "01" ( if "1" neq 01 ( set /a _passed+=1)))))))) ) comment goto :eof :internal set /a _tests+=1 echo Test %_tests%: Internal commands keys on mklink 2>nul >nul path %path% >nul dpath %dpath% if not defined prompt prompt $P$G prompt !prompt:~!rem/ $H? echo on rem/? @echo off rem(/?>nul rem )/? >nul (rem (/?) >nul rem /?>nul rem^/?>nul if/?>nul || if^/^?>nul || if /?>nul || if x/? >nul for/?>nul && for^/^?>nul && for /?>nul && for x/? >nul && for /?x >nul goto/?>nul && goto^/? && goto^ /? && goto /^ ? && goto /?>nul && goto:/? >nul && goto ) /? ) >nul && (goto /? )>nul =set+;/p extension'),=.bat for /f "tokens=2 delims==" %%G in ( 'assoc %+;/p extension'),%' ) do ( assoc 2>nul %+;/p extension'),:*.=.%=%%G ftype 1>nul %%G ) &>nul ver if errorlevel 0 if not errorlevel 1 set /a _passed+=1 goto :eof FOR /F %%a IN ('%%c%%') DO %%a rem %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% :/? goto :fail ---tokens--- '@' Punctuation ' ' Text '@@' Punctuation ' ' Text 'echo' Keyword ' ' Text 'off' Text '' Text '\n' Text '' Text ':' Punctuation ':This is an example of the Windows batch language.' Comment.Single '' Text '\n\n' Text 'setlocal' Keyword ' ' Text 'EnableDelayedExpansion' Text '' Text '\n' Text '(' Punctuation 'cls' Keyword '' Text ')' Punctuation '\n' Text 'set' Keyword '/a' Keyword '^\n_' Literal.String.Escape 'te' Name.Variable '^\ns' Literal.String.Escape 'ts' Name.Variable '^\n=' Literal.String.Escape '0' Name.Variable ',' Punctuation '^\n_' Literal.String.Escape '"' Literal.String.Double 'pa' Literal.String.Double '"' Literal.String.Double '^\ns' Literal.String.Escape 'sed' Name.Variable '=' Operator '0' Literal.Number.Integer '^\n0' Literal.String.Escape '' Text '\n' Text 'set' Keyword ',/a title' Name.Variable '=' Punctuation ' ' Text 'Batch' Text ' ' Text 'test' Text '' Text '\n' Text 'title' Keyword '=' Text '%,/a title%' Name.Variable '' Text '\n' Text 'echo' Keyword '^ ' Literal.String.Escape '%~nx0' Name.Variable ',' Text '^ ' Literal.String.Escape 'the' Text '>' Punctuation ',' Text 'con' Text ' ' Text 'comprehensive' Text ' ' Text 'testing' Text ' ' Text 'suite' Text '' Text '\n' Text 'ver' Keyword '' Text '\n' Text 'echo' Keyword '(' Text '' Text '\n\n' Text 'if' Keyword ' ' Text 'cmdextversion' Keyword ' ' Text '2' Literal.Number.Integer ' ' Text 'goto' Keyword ' ' Text '=' Text ')' Name.Label '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'fail' Name.Label '\n\n' Text '' Text ' ' Text ':' Punctuation ')' Name.Label '' Text '\n' Text 'echo' Keyword ' ' Text 'Starting' Text ' ' Text 'tests' Text ' ' Text 'at:' Text '' Text '\n' Text 'date' Keyword '/t' Text ' ' Text '&' Punctuation ' ' Text 'time' Keyword '/t' Text '' Text '\n' Text 'echo' Keyword '(' Text '' Text '\n\n' Text 'if' Keyword ' ' Text "'" Text '%*' Name.Variable "'" Text '==' Operator "'--help'" Text ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text 'echo' Keyword ' ' Text 'Usage:' Text ' ' Text '%~nx0' Name.Variable ' ' Text '[--help]' Text '' Text '\n' Text ' ' Text ' ' Text 'echo' Keyword ' ' Text ' ' Text ' ' Text '--help:' Text ' ' Text 'Display' Text ' ' Text 'this' Text ' ' Text 'help' Text ' ' Text 'message' Text ' ' Text 'and' Text ' ' Text 'quit.' Text '' Text '\n' Text ' ' Text ' ' Text 'shift' Keyword '' Text '\n' Text ' ' Text ' ' Text 'goto' Keyword ' ' Text ':' Punctuation 'exit' Name.Label ' comment' Comment.Single ')' Punctuation ' ' Text 'else' Keyword ' ' Text 'rem' Comment.Single '' Text '\n\n' Text '(' Punctuation 'call' Keyword ' ' Text ':' Punctuation 'comments' Name.Label ')' Punctuation '\n' Text 'call' Keyword ' ' Text ':' Punctuation ':' Punctuation 'io' Name.Label '+x' Text '' Text '\n' Text 'call' Keyword ':' Punctuation 'control' Name.Label ':x' Text '' Text '\n' Text 'call' Keyword ':' Punctuation ':' Punctuation 'internal' Name.Label ' ' Text 'x' Text '' Text '\n\n' Text '' Text ':' Punctuation 'exit' Name.Label '' Text '\n' Text 'if' Keyword ' ' Text '/i' Keyword ' ' Text '!_tests!' Name.Variable '==' Operator '!_passed!' Name.Variable ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text 'color' Keyword ' ' Text '0' Text '2' Text '' Text '\n' Text ')' Punctuation ' ' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '!*' Text '==' Operator '*' Text ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text 'color' Keyword ' ' Text 'c' Text '' Text '\n' Text ' ' Text ' ' Text 'if' Keyword ' ' Text 'not' Keyword ' ' Text 'defined' Keyword ' ' Text '_exit' Name.Variable '^\nC' Literal.String.Escape 'ode' Name.Variable ' ' Text 'set' Keyword ' ' Text '_exit' Name.Variable '^\nC' Literal.String.Escape 'ode' Name.Variable '=' Punctuation '1' Text '' Text '\n' Text ')' Punctuation '\n' Text 'set' Keyword ' ' Text '_percentage' Name.Variable '=' Punctuation 'NaN' Text '' Text '\n' Text 'if' Keyword ' ' Text 'defined' Keyword ' ' Text '_tests' Name.Variable ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text 'if' Keyword ' ' Text '!_tests!' Name.Variable ' ' Text 'neq' Operator.Word ' ' Text '0' Text ' ' Text '(' Punctuation 'set' Keyword '/a' Keyword '_percentage' Name.Variable '=' Operator '100' Literal.Number.Integer '*' Operator '_passed' Name.Variable '/' Operator '_tests' Name.Variable '' Text ')' Punctuation '\n' Text ')' Punctuation '\n' Text 'echo' Keyword '(' Text '' Text '\n' Text 'if' Keyword ' ' Text '!_percentage!' Name.Variable '==' Operator 'NaN' Text ' ' Text '(' Punctuation ' ' Text 'echo' Keyword '(There' Text ' ' Text 'were' Text ' ' Text 'no' Text ' ' Text 'tests' Text '^^!' Literal.String.Escape ' ' Text '&' Punctuation ' ' Text 'color' Keyword ' ' Text 'e' Text '' Text '\n' Text ')' Punctuation ' ' Text 'else' Keyword ' ' Text '(' Punctuation ' ' Text 'echo' Keyword ' ' Text 'Tests' Text ' ' Text 'passed:' Text ' ' Text '%_passed%' Name.Variable '/' Text '%_tests%' Name.Variable ' ' Text '(' Text '%_percentage%' Name.Variable '%%' Literal.String.Escape '^)' Literal.String.Escape ' ' Text '' Text ')' Punctuation '\n' Text 'pause' Keyword '' Text '\n' Text 'color' Keyword '' Text '\n' Text 'title' Keyword '' Text '\n' Text 'endlocal' Keyword '' Text '\n' Text 'exit' Keyword ' ' Text '/b' Text ' ' Text '%_exitCode%' Name.Variable '' Text '\n\n' Text '' Text 'x' Text ':' Punctuation 'fail' Name.Label '' Text '\n' Text 'rem This should never happen.' Comment.Single '' Text '\n' Text 'echo' Keyword ' ' Text 'Internal' Text ' ' Text 'error' Text ' ' Text '1' Literal.Number.Integer '>&' Punctuation ' ' Text '2' Literal.Number.Integer '6' Text '9' Text '1' Text '0' Text '5' Text '>>&' Punctuation '2' Literal.Number.Integer '' Text '\n' Text 'set' Keyword ' ' Text '/a' Keyword ' ' Text '_exitCode' Name.Variable '=' Operator '0x69' Literal.Number.Hex '+' Operator '(' Punctuation '0105' Literal.Number.Oct '*' Operator '1000' Literal.Number.Integer ')' Punctuation '' Text '\n' Text 'break' Keyword '' Text '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'exit' Name.Label '\n\n' Text '' Text ':' Punctuation 'comments' Name.Label '' Text '\n' Text '(' Punctuation 'rem )/?' Comment.Single '' Text '\n' Text ')' Punctuation '\n' Text 'rem "comment^' Comment.Single '' Text '\n' Text '(' Punctuation 'rem.' Comment.Single '' Text ')' Punctuation ' ' Text '&' Punctuation ' ' Text 'set' Keyword ' ' Text '/a' Keyword ' ' Text '_tests' Name.Variable '+=' Operator '1' Literal.Number.Integer '' Text '\n' Text '(' Punctuation 'rem) & goto :fail' Comment.Single '' Text '\n' Text '(' Punctuation 'rem. ' Comment.Single '' Text ')' Punctuation ' ' Text '&' Punctuation ' ' Text '(' Punctuation 'rem. comment ' Comment.Single '' Text ')' Punctuation ' ' Text '&' Punctuation ' ' Text 'echo' Keyword ' ' Text 'Test' Text ' ' Text '%_tests%' Name.Variable ':' Text ' ' Text 'Comments' Text '' Text '\n' Text 'rem )' Comment.Single '' Text '\n' Text ')' Punctuation '\n' Text ')|comment' Comment.Single '\n' Text ')(' Comment.Single '\n' Text '' Text ':' Punctuation ': comment' Comment.Single '' Text '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'comments^^1' Name.Label ':comment' Comment.Single '\n' Text '' Text ':' Punctuation 'comments^^1' Name.Label ' comment' Comment.Single '' Text '\n' Text 'if' Keyword '(' Text '1' Text '==' Operator '1' Text ')' Text ' ' Text 'goto' Keyword ' ' Text ':' Punctuation 'comments^\n^1' Name.Label '\n' Text 'rem^ /?' Comment.Single '' Text '\n' Text 'rem ^\n^' Comment.Single '' Text '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'comments^\n2' Name.Label '+comment' Comment.Single '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'fail' Name.Label '\n' Text '' Text ':' Punctuation 'comments2' Name.Label '' Text '\n' Text 'rem >^' Comment.Single '' Text '\n' Text 'if' Keyword ' ' Text '1' Text '==' Operator '1' Text ' ' Text '(' Punctuation 'goto' Keyword ' ' Text ':' Punctuation 'comments3' Name.Label ')' Punctuation '\n' Text '' Text ':' Punctuation 'comments3)' Name.Label '' Text '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'fail' Name.Label '\n' Text '' Text ':' Punctuation 'comments3' Name.Label '' Text '\n' Text 'rem comment^\ngoto:fail' Comment.Single '' Text '\n' Text 'rem.comment comment^\ngoto fail' Comment.Single '' Text '\n' Text 'rem "comment comment"^\ngoto fail' Comment.Single '' Text '\n' Text 'rem comment comment^' Comment.Single '' Text '\n' Text 'if' Keyword ' ' Text '"' Literal.String.Double '1==1' Literal.String.Double '"' Literal.String.Double ' ' Text 'equ' Operator.Word ' ' Text '"' Literal.String.Double '1==1' Literal.String.Double '"' Literal.String.Double ' ' Text 'goto' Keyword ' ' Text 'comments4' Name.Label '\n' Text 'goto' Keyword ' ' Text 'fail' Name.Label '\n' Text '' Text ':' Punctuation 'comments4' Name.Label '' Text '\n' Text 'rem comment"comment^' Comment.Single '' Text '\n' Text 'set' Keyword ' ' Text '/a' Keyword ' ' Text '_passed' Name.Variable '+=' Operator '1' Literal.Number.Integer '' Text '\n' Text 'GOTO' Keyword ' ' Text ':' Punctuation 'EOF' Name.Label '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'fail' Name.Label '\n\n' Text '' Text ':' Punctuation 'IO' Name.Label '' Text '\n' Text 'SET' Keyword ' ' Text '/A' Keyword ' ' Text '_tests' Name.Variable '+=' Operator '1' Literal.Number.Integer ' ' Text '' Text '&' Punctuation ' ' Text 'Echo' Keyword ' ' Text 'Test' Text ' ' Text '!_tests:*!==^!' Name.Variable ':' Text ' ' Text 'I/O' Text '' Text '\n' Text 'verify' Keyword ' ' Text 'on' Text '' Text '\n' Text 'pushd' Keyword ' ' Text '.' Text '' Text '\n' Text 'if' Keyword ' ' Text 'exist' Keyword ' ' Text 'temp' Text ' ' Text 'echo' Keyword ' ' Text ' ' Text 'temp' Text ' ' Text 'already' Text ' ' Text 'exists.' Text ' ' Text '&' Punctuation ' ' Text 'goto' Keyword ' ' Text ':' Punctuation 'eof' Name.Label '\n' Text 'md' Keyword ' ' Text 'temp' Text '' Text '\n' Text 'cd' Keyword ' ' Text 'temp' Text '' Text '\n' Text 'mkdir' Keyword ' ' Text '2' Literal.Number.Integer '>' Punctuation 'nul' Text ' ' Text 'temp' Text '' Text '\n' Text 'chdir' Keyword ' ' Text 'temp' Text '' Text '\n' Text '>' Punctuation 'cd' Text ' ' Text ' ' Text 'echo' Keyword ' ' Text 'Checking' Text ' ' Text 'drive...' Text '' Text '\n' Text '>>' Punctuation 'cd' Text ' ' Text 'echo' Keyword ' ' Text 'must' Text ' ' Text 'be' Text ' ' Text 'C' Text ' ' Text 'or' Text ' ' Text 'else' Text ' ' Text 'this' Text ' ' Text "won't" Text ' ' Text 'work' Text '' Text '\n' Text 'for' Keyword ' ' Text '/f' Keyword ' ' Text '"' Literal.String.Double 'tokens=* usebackq' Literal.String.Double '"' Literal.String.Double ' ' Text '%%' Literal.String.Escape 'G' Text ' ' Text 'in' Keyword ' ' Text '(' Punctuation '"' Literal.String.Double 'cd' Literal.String.Double '\n' Text ')' Punctuation ' ' Text 'do' Keyword ' ' Text '(' Punctuation '<' Punctuation 'nul' Text ' ' Text 'set' Keyword ' ' Text '/p' Keyword '=' Punctuation '"' Literal.String.Double '%%' Literal.String.Escape 'G ' Literal.String.Double '"' Literal.String.Double '' Text ')' Punctuation '\n' Text 'echo' Keyword '(' Text '' Text '\n' Text 'DEL' Keyword ' ' Text 'cd' Text '' Text '\n' Text 'if' Keyword ' ' Text 'not' Keyword ' ' Text '"' Literal.String.Double '%cd:~0,3%' Name.Variable '"' Literal.String.Double '==' Operator '"' Literal.String.Double 'C:\\' Literal.String.Double '"' Literal.String.Double ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text 'call' Keyword ' ' Text 'call' Keyword ' ' Text 'echo' Keyword ' ' Text ' ' Text 'Wrong' Text ' ' Text 'drive' Text ' ' Text '(should' Text ' ' Text 'be' Text ' ' Text 'C' Text '^)' Literal.String.Escape ':' Text '' Text '\n' Text ' ' Text ' ' Text 'vol' Keyword '' Text '\n' Text ' ' Text ' ' Text 'goto' Keyword ' ' Text ':' Punctuation 'test' Name.Label ')' Punctuation '\n' Text '>' Punctuation 'test' Text '0' Text '^\n.' Literal.String.Escape 'bat' Text ' ' Text 'echo' Keyword ' ' Text 'rem' Text ' ' Text 'Machine-generated' Text ';' Text ' ' Text 'do' Text ' ' Text 'not' Text ' ' Text 'edit' Text '' Text '\n' Text 'call' Keyword ' ' Text 'echo' Keyword ' ' Text 'set' Text ' ' Text '/a' Text ' ' Text '_passed+' Text '=' Text '1' Text ' ' Text '>>' Punctuation 'test' Text '0' Text '.bat' Text '' Text '\n' Text 'type' Keyword ' ' Text 'test' Text '0' Text '.bat' Text ' ' Text '>' Punctuation '"' Literal.String.Double 'test 1.bat' Literal.String.Double '' Text '\n' Text 'ren' Keyword ' ' Text '"' Literal.String.Double 'test 1.bat' Literal.String.Double '"' Literal.String.Double ' ' Text 'test' Text '2' Text '.bat' Text '' Text '\n' Text 'rename' Keyword ' ' Text 'test' Text '2' Text '.bat' Text ' ' Text 'test.bat' Text '' Text '\n' Text 'caLL' Keyword ' ' Text '^\nC' Literal.String.Escape ':' Punctuation 'test' Name.Label '' Text '\n' Text 'del' Keyword ' ' Text 'test.bat' Text ' ' Text '2' Literal.Number.Integer '>' Punctuation 'nul' Text '' Text '\n' Text '2' Literal.Number.Integer '>' Punctuation 'NUL' Text ' ' Text 'erase' Keyword ' ' Text 'test' Text '0' Text '.bat' Text '' Text '\n' Text 'popd' Keyword '' Text '\n' Text 'rd' Keyword ' ' Text 'temp\\temp' Text '' Text '\n' Text 'rmdir' Keyword ' ' Text 'temp' Text '' Text '\n' Text 'VERIFY' Keyword ' ' Text 'OFF' Text '' Text '\n' Text 'goto' Keyword ':' Punctuation 'eof' Name.Label '\n\n' Text '' Text ':' Punctuation 'control' Name.Label '' Text '\n' Text 'set' Keyword ' ' Text '/a' Keyword ' ' Text '_tests' Name.Variable '+=' Operator '1' Literal.Number.Integer '' Text '\n' Text 'echo' Keyword ' ' Text 'Test' Text ' ' Text '%_tests%' Name.Variable ':' Text ' ' Text 'Control' Text ' ' Text 'statements' Text '' Text '\n' Text 'set' Keyword ' ' Text '"' Literal.String.Double '_iterations=0' Literal.String.Double '"' Literal.String.Double '>' Punctuation 'nul' Text '' Text '\n' Text 'for' Keyword ' ' Text '%%' Literal.String.Escape 'G' Text ' ' Text 'in' Keyword ' ' Text '(' Punctuation ',' Text '+' Text ',' Text ',' Text '-' Text ',' Text '\n' Text ')' Punctuation ' ' Text 'do' Keyword ' ' Text '@' Punctuation '(' Punctuation '\n' Text ' ' Text ' ' Text 'for' Keyword ' ' Text '/l' Keyword ' ' Text '%%' Literal.String.Escape 'H' Text ' ' Text 'in' Keyword ' ' Text '(' Punctuation ',' Text '-1' Literal.Number.Integer ';' Text ';' Text '-1' Literal.Number.Integer '\t' Text '-3' Literal.Number.Integer ',' Text ')' Punctuation ' ' Text 'do' Keyword ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text 'for' Keyword ' ' Text '/f' Keyword ' ' Text 'tokens' Text '^=' Literal.String.Escape '1' Text '-' Text '2' Text '^,' Literal.String.Escape '5' Text ' ' Text '%%' Literal.String.Escape 'I' Text ' ' Text 'in' Keyword ' ' Text '(' Punctuation '"' Literal.String.Double '2 ' Literal.String.Double '%%' Literal.String.Escape 'H _ _ 10' Literal.String.Double '"' Literal.String.Double ')' Punctuation ' ' Text 'do' Keyword ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text 'for' Keyword ' ' Text '/f' Keyword ' ' Text '"' Literal.String.Double 'tokens=1 usebackq' Literal.String.Double '"' Literal.String.Double ' ' Text '%%' Literal.String.Escape 'L' Text ' ' Text 'in' Keyword ' ' Text '(' Punctuation ' ' Text '`echo ' Literal.String.Backtick '%%' Literal.String.Escape 'G' Literal.String.Backtick '%%' Literal.String.Escape 'J ``` `\n` `' Literal.String.Backtick ' ' Text ')' Punctuation ' ' Text 'do' Keyword ' ' Text '(' Punctuation ' ' Text 'for' Keyword ' ' Text '/f' Keyword ' ' Text '"' Literal.String.Double 'tokens=2' Literal.String.Double '"' Literal.String.Double ' ' Text '%%' Literal.String.Escape 'M' Text ' ' Text 'in' Keyword ' ' Text '(' Punctuation "'echo ' " Literal.String.Single '%%' Literal.String.Escape "L0 '\n' '" Literal.String.Single ' ' Text ')' Punctuation ' ' Text 'do' Keyword ' ' Text '(' Punctuation ' ' Text 'set' Keyword ' ' Text '/a' Keyword ' ' Text '_iterations' Name.Variable '+=' Operator '(' Punctuation '%%' Operator 'M' Name.Variable '%%' Operator 'M' Name.Variable '^)' Literal.String.Escape '' Text '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ')' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ')' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ')' Punctuation '\n' Text ' ' Text ' ' Text ')' Punctuation '\n' Text ')' Punctuation '\n' Text 'if' Keyword ' ' Text 'exist' Keyword ' ' Text '%~nx0' Name.Variable ' ' Text 'if' Keyword ' ' Text 'not' Keyword ' ' Text 'exist' Keyword ' ' Text '%~nx0' Name.Variable ' ' Text 'goto' Keyword ' ' Text ':' Punctuation 'fail' Name.Label '\n' Text 'if' Keyword ' ' Text 'exist' Keyword ' ' Text '%~nx0' Name.Variable ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text 'if' Keyword ' ' Text 'not' Keyword ' ' Text 'exist' Keyword ' ' Text '%~nx0' Name.Variable ' ' Text 'goto' Keyword ' ' Text ':' Punctuation 'fail' Name.Label '\n' Text ')' Punctuation ' ' Text 'else' Keyword ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text 'if' Keyword ' ' Text 'exist' Keyword ' ' Text '%~nx0' Name.Variable ' ' Text 'goto' Keyword ' ' Text ':' Punctuation 'fail' Name.Label '\n' Text ')' Punctuation '\n' Text 'if' Keyword ' ' Text '/i' Keyword ' ' Text '%_iterations%' Name.Variable ' ' Text 'gtr' Operator.Word ' ' Text '-' Text '2' Text ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text 'if' Keyword ' ' Text '/i' Keyword ' ' Text '%_iterations%' Name.Variable ' ' Text 'geq' Operator.Word ' ' Text '-' Text '1' Text ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text 'if' Keyword ' ' Text '/i' Keyword ' ' Text '%_iterations%' Name.Variable ' ' Text 'lss' Operator.Word ' ' Text '1' Text ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text 'if' Keyword ' ' Text '/i' Keyword ' ' Text '%_iterations%' Name.Variable ' ' Text 'leq' Operator.Word ' ' Text '0' Text ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text 'if' Keyword ' ' Text '/i' Keyword ' ' Text '%_iterations%' Name.Variable ' ' Text 'equ' Operator.Word ' ' Text '0' Text ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text 'if' Keyword ' ' Text '1' Literal.Number.Integer ' ' Text 'equ' Operator.Word ' ' Text '01' Literal.Number.Oct ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text 'if' Keyword ' ' Text '1' Text ' ' Text 'neq' Operator.Word ' ' Text '"' Literal.String.Double '01' Literal.String.Double '"' Literal.String.Double ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text 'if' Keyword ' ' Text '"' Literal.String.Double '1' Literal.String.Double '"' Literal.String.Double ' ' Text 'neq' Operator.Word ' ' Text '0' Text '1' Text ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text ' ' Text 'set' Keyword ' ' Text '/a' Keyword ' ' Text '_passed' Name.Variable '+=' Operator '1' Literal.Number.Integer '' Text ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n' Text ') comment' Comment.Single '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'eof' Name.Label '\n\n' Text '' Text ':' Punctuation 'internal' Name.Label '' Text '\n' Text 'set' Keyword ' ' Text '/a' Keyword ' ' Text '_tests' Name.Variable '+=' Operator '1' Literal.Number.Integer '' Text '\n' Text 'echo' Keyword ' ' Text 'Test' Text ' ' Text '%_tests%' Name.Variable ':' Text ' ' Text 'Internal' Text ' ' Text 'commands' Text '' Text '\n' Text 'keys' Keyword ' ' Text 'on' Text '' Text '\n' Text 'mklink' Keyword ' ' Text '2' Literal.Number.Integer '>' Punctuation 'nul' Text '' Text '\n' Text '>' Punctuation 'nul' Text ' ' Text 'path' Keyword ' ' Text '%path%' Name.Variable '' Text '\n' Text '>' Punctuation 'nul' Text ' ' Text 'dpath' Keyword ' ' Text '%dpath%' Name.Variable '' Text '\n' Text 'if' Keyword ' ' Text 'not' Keyword ' ' Text 'defined' Keyword ' ' Text 'prompt' Name.Variable ' ' Text 'prompt' Keyword ' ' Text '$P$G' Text '' Text '\n' Text 'prompt' Keyword ' ' Text '!prompt:~!' Name.Variable 'rem/' Text ' ' Text '$H?' Text '' Text '\n' Text 'echo' Keyword ' ' Text 'on' Text '' Text '\n' Text 'rem' Keyword '/?' Text '' Text '\n' Text '@' Punctuation 'echo' Keyword ' ' Text 'off' Text '' Text '\n' Text 'rem' Keyword '(/?' Text '>' Punctuation 'nul' Text '' Text '\n' Text 'rem' Keyword ' ' Text ')' Text '/?' Text ' ' Text '>' Punctuation 'nul' Text '' Text '\n' Text '(' Punctuation 'rem' Keyword ' ' Text '(/?' Text '' Text ')' Punctuation ' ' Text '>' Punctuation 'nul' Text '\n' Text 'rem' Keyword ' ' Text '/?' Text '>' Punctuation 'nul' Text '' Text '\n' Text 'rem' Keyword '^/' Literal.String.Escape '?' Text '>' Punctuation 'nul' Text '' Text '\n' Text 'if' Keyword '/?' Text '>' Punctuation 'nul' Text ' ' Text '||' Punctuation ' ' Text 'if' Keyword '^/' Literal.String.Escape '^?' Literal.String.Escape '>' Punctuation 'nul' Text ' ' Text '||' Punctuation ' ' Text 'if' Keyword ' ' Text '/?' Text '>' Punctuation 'nul' Text ' ' Text '||' Punctuation ' ' Text 'if' Keyword ' ' Text 'x/?' Text ' ' Text '>' Punctuation 'nul' Text '' Text '\n' Text 'for' Keyword '/?' Text '>' Punctuation 'nul' Text ' ' Text '&&' Punctuation ' ' Text 'for' Keyword '^/' Literal.String.Escape '^?' Literal.String.Escape '>' Punctuation 'nul' Text ' ' Text '&&' Punctuation ' ' Text 'for' Keyword ' ' Text '/?' Text '>' Punctuation 'nul' Text ' ' Text '&&' Punctuation ' ' Text 'for' Keyword ' ' Text 'x/?' Text ' ' Text '>' Punctuation 'nul' Text ' ' Text '&&' Punctuation ' ' Text 'for' Keyword ' ' Text '/?' Text 'x' Text ' ' Text '>' Punctuation 'nul' Text '' Text '\n' Text 'goto' Keyword '/?' Text '>' Punctuation 'nul' Text ' ' Text '&&' Punctuation ' ' Text 'goto' Keyword '^/' Literal.String.Escape '?' Text ' ' Text '&&' Punctuation ' ' Text 'goto' Keyword '^ ' Literal.String.Escape '/?' Text ' ' Text '&&' Punctuation ' ' Text 'goto' Keyword ' ' Text '/' Text '^\n?' Literal.String.Escape ' ' Text '&&' Punctuation ' ' Text 'goto' Keyword ' ' Text '/?' Text '>' Punctuation 'nul' Text ' ' Text '&&' Punctuation ' ' Text 'goto' Keyword ':/?' Text ' ' Text '>' Punctuation 'nul' Text ' ' Text '&&' Punctuation ' ' Text 'goto' Keyword ' ' Text ')' Text ' ' Text '/?' Text ' ' Text ')' Text ' ' Text '>' Punctuation 'nul' Text ' ' Text '&&' Punctuation ' ' Text '(' Punctuation 'goto' Keyword ' ' Text '/?' Text ' ' Text '' Text ')' Punctuation '>' Punctuation 'nul' Text '\n' Text '=' Text 'set' Keyword "+;/p extension')," Name.Variable '=' Punctuation '.bat' Text '' Text '\n' Text 'for' Keyword ' ' Text '/f' Keyword ' ' Text '"' Literal.String.Double 'tokens=2 delims==' Literal.String.Double '"' Literal.String.Double ' ' Text '%%' Literal.String.Escape 'G' Text ' ' Text 'in' Keyword ' ' Text '(' Punctuation ' ' Text "'assoc " Literal.String.Single "%+;/p extension'),%" Name.Variable "'" Literal.String.Single '\n ' Text ')' Punctuation ' ' Text 'do' Keyword ' ' Text '(' Punctuation '\n' Text ' ' Text ' ' Text 'assoc' Keyword ' ' Text '2' Literal.Number.Integer '>' Punctuation 'nul' Text ' ' Text "%+;/p extension'),:*.=.%" Name.Variable '=' Text '%%' Literal.String.Escape 'G' Text '' Text '\n' Text ' ' Text ' ' Text 'ftype' Keyword ' ' Text '1' Literal.Number.Integer '>' Punctuation 'nul' Text ' ' Text '%%' Literal.String.Escape 'G' Text '' Text '\n' Text ')' Punctuation ' ' Text '&' Punctuation '>' Punctuation 'nul' Text ' ' Text 'ver' Keyword '' Text '\n' Text 'if' Keyword ' ' Text 'errorlevel' Keyword ' ' Text '0' Literal.Number.Integer ' ' Text 'if' Keyword ' ' Text 'not' Keyword ' ' Text 'errorlevel' Keyword ' ' Text '1' Literal.Number.Integer ' ' Text 'set' Keyword ' ' Text '/a' Keyword ' ' Text '_passed' Name.Variable '+=' Operator '1' Literal.Number.Integer '' Text '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'eof' Name.Label '\n' Text 'FOR' Keyword ' ' Text '/F' Keyword ' ' Text '%%' Literal.String.Escape 'a' Text ' ' Text 'IN' Keyword ' ' Text '(' Punctuation "'" Literal.String.Single '%%' Literal.String.Escape 'c' Literal.String.Single '%%' Literal.String.Escape "'" Literal.String.Single ')' Punctuation ' ' Text 'DO' Keyword ' ' Text '%%' Literal.String.Escape 'a' Text '' Text '\n' Text 'rem %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x% %x%' Comment.Single '' Text '\n' Text '' Text ':' Punctuation '/?' Name.Label '' Text '\n' Text 'goto' Keyword ' ' Text ':' Punctuation 'fail' Name.Label '\n' Text