Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows批处理脚本问题-引用包含空格的变量_Windows_Variables_Batch File_Cmd_Spaces - Fatal编程技术网

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

Windows批处理脚本问题-引用包含空格的变量,windows,variables,batch-file,cmd,spaces,Windows,Variables,Batch File,Cmd,Spaces,这就是我的问题: 我想使用%cd%,以便用户可以在任何地方执行脚本,但如果%cd%包含空格,则脚本将失败(不考虑引号)。如果我硬编码路径,它将使用引号运行,但是如果它是一个变量,它将失败 失败:(如果%cd%包含空格) %cd%\Testing.bat 作品: “C:\Program Files\Testing.bat” 有什么想法吗?%CD%不是正确的方法,因为它指示调用脚本时用户所在的目录,而不是脚本所在的目录 使用%~dp0从%0提取驱动器和路径信息: REM C:\Program Fil

这就是我的问题: 我想使用%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!