我有2个(可能更多将来)批处理文件层,让我的生活变得更轻松,直到我尝试添加带有空格的路径。
批处理文件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\"
有没有办法以任何其他方式逃离这个空间?
答案 0 :(得分:14)
使用以下语法:
set VAR="%~1"
%〜1是没有引号的第一个参数,然后在它周围加上引号以正确处理其中带有空格的路径。就像那样,你总是在安全的一面。