There is no practical limit to the number of parameters you can pass to a batch file, but you can only address
parameter 0 (%0 - The batch file name) through parameter 9 (%9).
To circumvent this behavior, you can use the SHIFT command,
as in the following example:
test a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9
where test.bat might contain:
@echo off
@echo %0
:again
if {%1}=={} goto :EOF
@echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift
goto again
With the above parameters, test.bat would display:
test
a b c d e f g h i
b c d e f g h i j
c d e f g h i j k
d e f g h i j k l
e f g h i j k l m
f g h i j k l m n
g h i j k l m n o
h i j k l m n o p
i j k l m n o p q
j k l m n o p q r
k l m n o p q r s
l m n o p q r s t
m n o p q r s t u
n o p q r s t u v
o p q r s t u v w
p q r s t u v w x
q r s t u v w x y
r s t u v w x y z
s t u v w x y z 0
t u v w x y z 0 1
u v w x y z 0 1 2
v w x y z 0 1 2 3
w x y z 0 1 2 3 4
x y z 0 1 2 3 4 5
y z 0 1 2 3 4 5 6
z 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9
4 5 6 7 8 9
5 6 7 8 9
6 7 8 9
7 8 9
8 9
9