Windows批处理脚本问题 - 引用包含空格的变量

时间:2010-04-10 03:07:02

标签: windows variables batch-file cmd spaces

所以这是我的问题: 我想使用%cd%,因此用户可以在任何想要放置它的地方执行脚本,但如果%cd%包含空格,那么它将失败(无论引号如何)。如果我对路径进行硬编码,它将使用引号起作用,但如果它是变量,则会失败。

失败:(如果%cd%包含空格) “%CD%\ Testing.bat”

使用: “C:\ Program Files \ Testing.bat”

有什么想法吗?

1 个答案:

答案 0 :(得分: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!