将parameter passing给以数字结尾的batch file

我有要求将参数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 %*