2010-04-10 25 views
3

因此,我的問題是: 我想使用%cd%,因此用戶可以在任何想放置它的位置執行腳本,但是如果%cd%包含空格,失敗(不管引號)。如果我對路徑進行硬編碼,它將用引號運行,但如果它是一個變量,它將會失敗。Windows批處理腳本問題 - 引用包含空格的變量

失敗:(如有%CD%包含空格) 「%CD%\ Testing.bat」

作品: 「C:\ Program Files文件\ Testing.bat」

任何想法?

回答

3

%CD%不是正確的方法,因爲它指示用戶在調用腳本時所在的目錄,而不是腳本所在的目錄。

使用%~dp0,而不是從%0取出驅動器和路徑信息:

REM C:\Program Files\test_caller.bat 
@echo I am the caller and I reside in: "%~dp0" 
@"%~dp0\test.bat" 

...

REM C:\Program Files\test.bat 
@echo Yippeee! 

...

C:\>"\Program Files\test_caller.bat" 
I am the caller and I reside in: "C:\Program Files\" 
Yippeee! 

C:\>e: 

E:\>"C:\Program Files\test_caller.bat" 
I am the caller and I reside in: "C:\Program Files\" 
Yippeee!