Como garantir que% PATH% desapareça se PATH não estiver definido?

2

Eu tentei fazer o seguinte

set PATH=
echo foo%PATH%bar

e eu recebo

foo%PATH%bar

se eu adicionar um espaço após o sinal = no conjunto, obtenho

foo bar

Eu também tentei

set PATH=""

e eu recebo

foo""bar

O que eu quero é

foobar

Questões similares na Web não resolveram o problema. Aparentemente, se indefinido, o comportamento deve ser o esperado, mas este não é o caso.

    
por Stefano Borini 21.01.2015 / 10:18

1 resposta

1

Como posso verificar se uma variável não está definida?

I tried to do the following:

set PATH=
echo foo%PATH%bar

and I get:

foo%PATH%bar

Você pode usar if not defined para produzir o resultado desejado.

Use o seguinte comando em um cmd shell:

if not defined PATH (echo foobar) else echo foo%path%bar

Exemplo de saída:

F:\test>set PATH=

F:\test>if not defined PATH (echo foobar) else echo foo%path%bar
foobar

F:\test>

e se o PATH estiver definido:

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>

---

Leitura Adicional

por 02.11.2015 / 14:43