我尝试做以下事情
set PATH=
echo foo%PATH%bar
我得到了
foo%PATH%bar
如果我在集合中的 = 符号后添加一个空格,我会得到
foo bar
我也试过
set PATH=""
我得到了
foo""bar
我想要的是
foobar
网络上类似的问题并没有解决这个问题。显然,如果未定义,行为应该如我所料,但事实并非如此。
答案1
如何检查变量是否未定义?
我尝试执行以下操作:
set PATH= echo foo%PATH%bar
我得到:
foo%PATH%bar
您可以使用它if not defined
来产生您想要的结果。
在 shell 中使用以下命令cmd
:
if not defined PATH (echo foobar) else echo foo%path%bar
示例输出:
F:\test>set PATH=
F:\test>if not defined PATH (echo foobar) else echo foo%path%bar
foobar
F:\test>
如果 PATH 已定义:
F:\test>if not defined PATH (echo foobar) else echo foo%path%bar
fooC:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\apps\Calibre\;;C:\apps\NTP\bin;C:\Program Files (x86)\QuickTime\QTSystem\bar
F:\test>
---
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 如果- 有条件地执行命令。