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

失败:(如果%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!

关于windows - Windows批处理脚本问题-引用包含空格的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2612074/

10-12 20:10