2010-11-19 133 views
9

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

但我想输出到be

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

难道没有办法以任何其他方式逃避空间吗?

回答

13

使用此语法:

set VAR="%~1" 

的%〜1是不带引号的第一个参数,然后把它周围引号正确处理带空格的路径。就像你一直在安全的一面。

+0

这与设置BASE =%〜1一起工作你是我的英雄。 – 2010-11-19 12:14:58

相关问题