Uma coisa que você precisa ter cuidado com a configuração de variáveis em lote não é usar espaços desnecessariamente. (Eu não vejo isso na sua pergunta, mas queria falar com ele desde que me peguei fazendo isso enquanto resolvia o problema.) Por exemplo:
set x=123
não é o mesmo que
set x = 123
O primeiro definirá %x%
para 123
, enquanto o segundo definirá %x %
para 123
. (Observe o espaço após x
no nome da variável e outro antes de 123
na definição.)
Outra coisa a ter em conta é que você não pode apenas dizer var=value
. Para definir uma variável de ambiente, você deve usar o comando SET
.
Assim, a sintaxe adequada para definir uma variável de ambiente que contém um caminho e, em seguida, uma que se expande sobre esse caminho, é a seguinte:
set x=C:\This\is\a\directory
set y=%x%\more\dirs
Você pode então usar o comando SET
para verificar o conteúdo dessas variáveis.
SevocêestiverapenasaprendendolinguagensdescriptnoWindows,provavelmenteseriamaisútilparavocêignoraroloteeirdiretoparaoPowerShell.OPowerShellvemdefábricacomoWindowsVistaesuperioretambémestádisponívelparaoXP.VejacomoomesmotrabalhoseriafeitonoPowerShell.
$x='C:\This\is\a\directory'$y="$x\more dirs"
(Observação: há um motivo para as aspas duplas terem sido usadas ao definir $y
, enquanto aspas simples foram usadas para $x
. Nesse caso, poderíamos ter usado para definir $x
, mas aspas duplas obrigatório para definir $y
, pois precisávamos expandir uma variável. Você aprenderá mais sobre isso enquanto escolhe o idioma.
Depois, para verificar as variáveis, você pode apenas chamá-las diretamente.
O PowerShell também é muito menos sensível ao espaçamento na maioria dos casos.
$x=123
é o mesmo que
$x = 123