3
因此,我的問題是: 我想使用%cd%,因此用戶可以在任何想放置它的位置執行腳本,但是如果%cd%包含空格,失敗(不管引號)。如果我對路徑進行硬編碼,它將用引號運行,但如果它是一個變量,它將會失敗。Windows批處理腳本問題 - 引用包含空格的變量
失敗:(如有%CD%包含空格) 「%CD%\ Testing.bat」
作品: 「C:\ Program Files文件\ Testing.bat」
任何想法?
因此,我的問題是: 我想使用%cd%,因此用戶可以在任何想放置它的位置執行腳本,但是如果%cd%包含空格,失敗(不管引號)。如果我對路徑進行硬編碼,它將用引號運行,但如果它是一個變量,它將會失敗。Windows批處理腳本問題 - 引用包含空格的變量
失敗:(如有%CD%包含空格) 「%CD%\ Testing.bat」
作品: 「C:\ Program Files文件\ Testing.bat」
任何想法?
%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!