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

これはset BASE =%〜1で動作しました。あなたは私のヒーローです。 –

関連する問題