批处理文件中的 %* 是否表示所有命令行参数?

批处理文件中的 %* 是否表示所有命令行参数?

批处理文件中是否%*表示所有命令行参数?

答案1

是的。根据微软官方文档

%* 批处理参数是对传递给批处理文件的所有参数(不包括 %0)的通配符引用。

答案2

除此之外,@kobkira 的评论指出,在传统语法中,您最多只能使用 9 个参数。如果您想要在单独的数组样式变量中获取 n 个参数,请使用以下语法:

@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"
  )
)

相关内容