【问题标题】:Passing parameters to a batch file that end in a numeral将参数传递给以数字结尾的批处理文件
【发布时间】: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


    【解决方案1】:

    将重定向移到语句的前面。

    >batch2.bat echo %*
    

    【讨论】:

    • 看起来好奇怪!。它虽然有效。非常感谢。
    猜你喜欢
    • 2016-07-03
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多