在命令行执行 bat 时,bat 文件名后面的内容将作为参数传递给 bat,然后我们就可以用如下语法获取传入的参数了:
%0 bat文件名
%1 第一个参数
%2 第二个参数
%2 第三个参数
……
示例:
C:\Users\Administrator\Desktop\test>type args.bat
@echo off
echo %0
echo %1
echo %2
echo %3
C:\Users\Administrator\Desktop\test>args.bat p1 p2 p3
args.bat
p1
p2
p3
如果传递给 bat 的参数包含双引号,可以使用 %~n 取到去掉了双引号的第n个参数,例如:
C:\Users\Administrator\Desktop\test>type args.bat
@echo off
echo %~0
echo %~1
echo %~2
echo %~3
C:\Users\Administrator\Desktop\test>args.bat "p1" 'p2' """p3"""
args.bat
p1
'p2'
""p3""
可以看到,%~n 只能去掉最外层的一对双引号,单引号是不会去掉的
特别的,%* 可以表示所有参数:
C:\Users\Administrator\Desktop\test>type args.bat
@echo off
echo %*
C:\Users\Administrator\Desktop\test>args.bat p1 p2 p3
p1 p2 p3