What's the maximum number of arguments that I can pass to a batch file?

John Savill

June 1, 2003

1 Min Read
ITPro Today logo in a gray background | ITPro Today

A. You can pass as many as nine arguments (%1 to %9) to a batch file. For example, if I run test.bat

@rem test.bat@echo offecho %1 %2 %3 %4 %5 %6 %7 %8 %9

by typing

C:>test a b c d e f g h i

the batch file accepts all nine arguments and displays the following output onscreen:

a b c d e f g h i

Argument 0 (%0) is the name of the program or batch file. If you attempt to pass an argument numbered higher than 9 (e.g., 11), the batch file will use only the first digit of the argument number--for example, %11 would become parameter 1 (i.e., %1) and %543 would become parameter 5 (i.e., %5). If I include a few two-digit arguments in test.bat

@rem test.bat@echo offecho %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %21 %32

and run the batch file by typing

C:>test a b c d e f g h i j k l

the batch file displays the following output onscreen:

test a b c d e f g h i a0 b1 c2

Notice that the batch processor amends a number to the parameters that it displays for the two-digit arguments. For example, for parameter 10 (%10), the batch processor used parameter 1 (value a) and added 0 to the end to display a0.

Please also see the FAQ How can I shift down by one all of a batch file's arguments?.

About the Author

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like