3

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

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

作品:“C:\Program Files\Testing.bat”

有任何想法吗?

4

1 回答 1

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!
于 2010-04-10T03:53:03.200 回答