我通过 Windows 7 高级系统设置创建了一个新的环境变量:
VAR_MYPATH = "D:\someFolder"
我将新变量添加到同一个对话框中的路径中:
PATH = ...;%VAR_MYPATH%
当我运行新的命令提示符并输入“CD %VAR_PATH%”时,没有返回错误,但命令提示符不会更改为“D:\someFolder”。
如果我尝试从 C 盘启动该文件夹下的批处理文件,最终会出现错误:
c:> %VAR_MYPATH%\someSubfolder\theBatchFile.bat
The system cannot find the path specified
所有路径都是正确的,那么我缺少什么来使环境变量正常工作?
答案1
出于与 MS-DOS 和 的兼容性原因
COMMAND.COM
,Windowscmd.exe
shell 维护了一个列表“当前目录”,每个驱动器号一个,该cd
命令会更改目录,但不会更改当前驱动器。使用
cd /d %var_mypath%
也可以改变当前驱动器。不要在变量值中加引号。如果加了引号,那么
%VAR_MYPATH%\someSubfolder\theBatchFile.bat
将扩展为"d:\someFolder"\someSubfolder\theBatchFile.bat
,这可能会造成混淆。(同样,为了兼容性,cmd.exe
从继承了许多怪癖COMMAND.COM
,包括一个奇怪的引用文本解析器。)确保变量确实存在在当前
cmd.exe
窗口中,通过运行set var_mypath
或echo %var_mypath%
。 (每个进程都从其父进程继承环境。)