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

时间:2010-11-19 11:38:58

标签: batch-file

我有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\"

有没有办法以任何其他方式逃离这个空间?

1 个答案:

答案 0 :(得分:14)

使用以下语法:

set VAR="%~1"

%〜1是没有引号的第一个参数,然后在它周围加上引号以正确处理其中带有空格的路径。就像那样,你总是在安全的一面。