Como você suprime a expansão de variáveis de ambiente no DOS e no Windows CMD?
Este é um exemplo simplificado com nomes de variáveis modificados do que eu quero fazer. Também por simplicidade, estou mostrando a versão da linha de comando em vez da versão do arquivo bat.
Eu estou fazendo o seguinte.
> echo %foo%
%foo%
No entanto, se foo é uma variável de ambiente válida, não obtenho a saída desejada (%foo%
) devido à expansão das variáveis ambientais.
> set foo=bar
> echo %foo%
> echo %%foo%%
bar
%bar%
Agora, eu tenho um hack para fazer (seguindo o exemplo) isso, mas eu queria saber se existe uma maneira mais clara de produzir um%
caractere ou para suprimir a expansão das variáveis de ambiente.
> set foo=bar
> set percent=%
> echo %percent%foo%percent%
%foo%
Além disso, se a solução necessária é diferente em um arquivo bat (como%%
ao invés de%
ou%1%
ao invés de%1
) Por favor deixe-me saber.
Meu caso de uso real está em um arquivo bat comSETX
para definir variáveis de ambiente globais que dependem de outra variável de ambiente para ser expandida dentro delas, mas estou curioso para saber como expandir em DOS ou em cmd.