Does %* in batch file mean all command line arguments?
Asked
Active
Viewed 8.5k times
2 Answers
107
Yes. According to the official Microsoft documentation:
The %* batch parameter is a wildcard reference to all the arguments, not including %0, that are passed to the batch file.
Matt McCutchen
- 103
- 3
Matt Solnit
- 1,700
2
Besides this, a comment by @kobkira notes that you can take only up to 9 arguments in conventional syntax. Like this if you want to get n number of arguments in separate array style variables, use this syntax:
@echo off & setlocal enabledelayedexpansion & set "n=30"
for /l %%a in (1,1,%n%) do (
for /f "tokens=%%a delims= " %%b in ('echo %*') do (
set "arg[%%~a]=%%~b"
)
)
wasif
- 9,176