我有要求将参数string从一个batch file传递到另一个在命令行执行。 假设我们有一个batch file,它接受它的参数(即命令“tail”)并创build另一个执行这些参数的batch file。 考虑文件Batch1.bat:
echo %*>Batch2.bat call Batch2.bat
如果我们运行这个
Batch1.bat echo abc
我们得到
abc
这很好。 但是,如果我们运行它
Batch1.bat echo 1 2 3
我们得到
1 2
我猜是因为最后一个参数3
被批量解释为以下redirect字符的操作符。 我知道一个简单的解决办法就是增加一个空格,如
echo %* >Batch2.bat
但是在有些情况下,命令行不能有尾随空格,例如:
Batch1 set NoEnv=
会给你一个具有一个空格字符值的环境variables,而不是删除环境variables。
那我该怎么做呢? – 要求有一个批量文件忠实地执行其命令尾(可能包括引号内的项目以及数字)
将重定向移到语句的前面。
>batch2.bat echo %*