代码之家  ›  专栏  ›  技术社区  ›  My Other Me

如何从另一个包含空格参数的批处理文件调用批处理文件?

  •  10
  • My Other Me  · 技术社区  · 14 年前

    我有两层(以后可能会更多)的批处理文件,这使得我的生活变得更轻松,直到我试图添加路径,其中有空格。

    批处理文件1:

    @echo off
    set thinga=c:\final build
    set thingb=\\server\deployment for final buil
    
    echo.
    echo thing a: %thinga%
    echo thing b: %thingb%
    echo.
    
    call lala.bat "%thinga%" "%thingb%"
    

    批处理文件2(lala.bat):

    @echo off
    
    echo.
    echo. Param 1 %1
    echo. Param 2 %2
    echo.
    set BASE=%1
    set TARGET=%2
    echo. Want to run:
    echo.  doSomethingOnBaseFolder %BASE%
    echo.  doSomethingOnBaseSubFolder "%BASE%\bin\release\*" "%TARGET%\"
    echo.
    

    其结果是:

    doSomethingOnBaseSubFolder ""c:\final build"\bin\release\*" ""\\server\deployment for final buil"\"
    

    但我希望输出

    doSomethingOnBaseSubFolder "c:\final build\bin\release\*" "\\server\deployment for final buil\"
    

    没有别的办法逃离这个空间吗?

    1 回复  |  直到 14 年前
        1
  •  14
  •   Helge Klein    14 年前

    使用以下语法:

    set VAR="%~1"
    

    %1是第一个不带引号的参数,然后在它周围加引号以正确处理其中包含空格的路径。就像你总是站在安全的一边。