如果 PATH 未定义,如何确保 %PATH% 消失?

如果 PATH 未定义,如何确保 %PATH% 消失?

我尝试做以下事情

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>

---

进一步阅读

相关内容