批处理文件命令行参数

时间:2010-06-04 11:31:59

标签: windows batch-file scripting command-line-arguments

嗨我在变量

中设置字符串

set main = svn commit -m“Build version number update”install \ msbuild \ VersionNumber.txt

并将“%main%”作为命令行参数传递给另一个脚本template.bat。

但是在template.bat中“构建版本号更新”被认为是第二个arg并且休息为第三个

之一。

请告诉我如何将变量main作为单个参数传递。

感谢

2 个答案:

答案 0 :(得分:3)

在第二个bat文件中;

@echo whole command line is %*

答案 1 :(得分:1)

变量%main%包含空格,因此如果你这样使用它:

template.bat %main%

批次会像这样解释:

template.bat svn blah blah blah

因此,%1将只是“svn”等。如果您希望将%main%的全部内容视为单个参数,则必须在其周围加上引号:

template.bat "%main%"

问题是,%1现在包含这些引号。您必须使用代字号

在template.bat中删除它们
%~1