2010-11-19 104 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

相關問題