当我在批处理中运行以下代码时....
set PATH='C:\Users\DEB\Downloads\10.1.1.0.4'
cd !PATH!
我遇到了错误 "文件名、目录名或卷标语法不正确"。
更新:以下是对我有效的解决方案。
- 不要使用
PATH
作为变量名 - 将其设置为
"myPATH=C:\Users\DEB DAS\Downloads\10.1.1.0.4"
set myPATH="C:\Users\DEB\Downloads\10.1.1.0.4"
cd %myPATH%
单引号不表示字符串,它们让其以'C:\
开头而非C:\
,所以
%name%
是扩展变量的常规语法,!name!
语法需要使用命令 setlocal ENABLEDELAYEDEXPANSION
先启用,或者通过在命令提示符下运行 CMD /V:ON
来启用。
不要将PATH作为你的名称,它是一个包含所有可执行程序位置的系统名称。如果你覆盖它,你的脚本的某些部分会停止工作。如果你想要更改它,你需要执行 set PATH=%PATH%;C:\Users\DEB\Downloads\10.1.1.0.4
来保留当前的PATH内容,并在结尾添加内容。
setlocal ENABLEDELAYEDEXPANSION
后,!name!
语法可以在任何地方使用,而不仅限于循环内部。 - foxidriveusers>E:\TEST"E:\TEST.bat
错误,users>E:\TEST.bat
是可以工作的。经过检查后,我修正了路径。
cd %PATH%
,并且需要用双引号"
而不是单引号将值括起来。但我强烈不建议您使用该变量名 - 它具有非常特殊的含义。 - user330315