我正在 Windows 7 上编写一个简单的批处理脚本来添加一些环境文件路径。问题是,由于现有路径中有空格,我的设置路径命令失败:
SET PATH=C:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;%Path%
Run Code Online (Sandbox Code Playgroud)
这失败了 '\ Microsoft cannot be found' 这指的是我认为在现有的 %path% 变量中:-
c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\
Run Code Online (Sandbox Code Playgroud)
有没有简单的解决方案?
更新:原来问题在于周围的 IF 语句。这个脚本抛出了提到的错误消息:
IF "TEST" == "TEST" (
ECHO Using TEST settings on %COMPUTERNAME%
SET PATH="C:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;%Path%"
SET GDRIVE= (removed path)
)
Run Code Online (Sandbox Code Playgroud)
但是如果我删除 IF 语句,它工作正常:
ECHO Using TEST settings on %COMPUTERNAME%
SET PATH="C:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;%Path%"
SET GDRIVE= (removed path)
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么 IF 语句会导致 SET PATH 失败?
要直接回答您的问题,在设置变量时避免评估括号和其他特殊字符的语法是set "var=value". 但是set在这里使用的命令是错误的。你应该做的是
setlocal enabledelayedexpansion
path C:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;!PATH!
Run Code Online (Sandbox Code Playgroud)
延迟扩展将防止过早评估 PATH 变量的内容。path /?从 cmd 控制台键入以获取有关该path命令的更多信息。
如果您希望您的路径添加是持久的,请参阅此答案中:append_path示例脚本中的函数。
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |