作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我遇到了一个 Windows 批处理脚本问题,我一直在抨击这个问题(没有双关语意)。有问题的脚本如下所示:
if defined _OLD_VIRTUAL_PATH (
set PATH=%_OLD_VIRTUAL_PATH%
)
当我运行它并设置了 _OLD_VIRTUAL_PATH
时,我得到:
\Microsoft was unexpected at this time.
_OLD_VIRTUAL_PATH
是一个最初从 PATH
设置的变量,它包含空格 - 我很确定这就是问题所在。但是解决办法是什么?如果我将它括在引号中,它会成功运行,但我认为 PATH
变量的整个值不应该用引号引起来。
最佳答案
这里的问题不是空格,而是右括号。您可能正在运行 64 位系统,其中 32 位应用程序的 Program Files 目录是 Program Files (x86)
。在批处理文件中带括号的 block 中,右括号结束该 block ,因此该行的其余部分会导致语法错误。
你有两种方法来解决这个问题:
1) 将完整的 set
参数放在引号中。这会导致右括号不被识别为 block 的结尾:
if defined _OLD_VIRTUAL_PATH (
set "PATH=%_OLD_VIRTUAL_PATH%"
)
2) 不要使用 block :
if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH%
关于windows - 如何在 Windows 批处理文件中将 PATH 设置为另一个带空格的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2771285/
我是一名优秀的程序员,十分优秀!