【问题标题】:batch files command line arguments批处理文件命令行参数
【发布时间】:2023-03-11 07:04:01
【问题描述】:

嗨,我在变量中设置一个字符串

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

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

但在 template.bat 中,“构建版本号更新”被视为第二个参数,其余为第三个

一个。

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    在第二个bat文件中;

    @echo whole command line is %*
    

    【讨论】:

    • 不错,没想到%*。但是,如果将更多参数传递给 template.bat,它将不起作用。
    【解决方案2】:

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

    template.bat %main%
    

    Batch 会这样解释:

    template.bat svn blah blah blah
    

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

    template.bat "%main%"
    

    问题是,%1 现在包含这些引号。您必须使用波浪号在 template.bat 中删除它们:

    %~1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-30
      相关资源
      最近更新 更多