setargs=pos1pos2--param1value1--param2value2pos3--flag1--param3value3--array "a 1"--array "a 2"--flag2--array a3"pos 4"--flag3--pass"pass through"--pass
call:assert"!PASSTHROUGH[@]!""pass pass through --pass"
call:assert"!PASSTHROUGH[#]!"3
call:assert"!PASSTHROUGH[0]!""pass"
call:assert"!PASSTHROUGH[1]!""pass through"
call:assert"!PASSTHROUGH[2]!""--pass"
goto:result
:assert
@echo off
echoverifying"%~1"=="%~2"
if"%~1"=="%~2"(
REM echo PASS "%~1" equals "%~2"
)else(
echoFAIL"%~1"vs"%~2"
set/A errors+=1
)
exit/B
:result
ifNOT%errors%==0(
echo%errors%errors!
)else(
echoNoerrors
)
@echo off
setlocal
setlocalenabledelayedexpansion
setPARSE_OPTS_FLAGS=flag4
setargs=pos1pos2--param1value1--param2value2pos3--flag1--param3value3--array "a 1"--array "a 2"--flag2--array a3"pos 4"--flag3--flag4pos5--pass"pass through"--pass