【发布时间】:2015-07-08 23:50:06
【问题描述】:
我需要将参数字符串从一个批处理文件传递到另一个批处理文件以在命令行执行。假设我们有一个批处理文件,它接受它的参数(即命令“tail”)并创建另一个执行这些参数的批处理文件。考虑文件 Batch1.bat:
echo %*>Batch2.bat
call Batch2.bat
如果我们运行这个
Batch1.bat echo a b c
我们得到
a b c
这很好。但是如果我们用
Batch1.bat echo 1 2 3
我们得到
1 2
我猜是因为最后一个参数3 被批处理解释为以下> 重定向字符的运算符。我知道一个简单的解决方法是添加一个空格,如
echo %* >Batch2.bat
但有些情况下命令行不能有尾随空格,例如:
Batch1 set NoEnv=
会给你一个值为一个空格字符的环境变量,而不是删除环境变量。
那么我该怎么做呢? - 要求有一个批处理文件,它忠实地执行其命令尾部(可能包括引号中的项目,以及数字)
【问题讨论】:
标签: windows batch-file cmd