Tentando usar uma variável de ambiente em um script .cmd, recebendo a mensagem “\ Windows was unexpected at this time”

0

Eu preciso acessar uma variável de ambiente do Windows em um script .cmd, é algo parecido com isto, seguindo a documentação em suporte da microsoft :

if "%MY_ENV_VAR%" == "" (
  echo You must set your MY_ENV_VAR environment variable.
  goto end
)

set DO_STUFF="%MY_ENV_VAR%\some_folder\doStuff.exe"

No entanto, o script não funciona e estou recebendo a seguinte mensagem:

\Windows was expected at this time

Eu fiz algo errado? Como consertar isso?

Não sei o quanto isso é importante, mas a variável de ambiente contém o seguinte caminho: C:\Program Files (x86)\Windows Kits\bin.0.16299.0

    
por theJuls 08.05.2018 / 17:38

2 respostas

1

Acho que você pode estar misturando a linguagem de lote com uma linguagem de script mais avançada. O link que você mostra é para arquivos em lote. Pelo que eu sei, você não pode escrever arquivos em lote como o código java (usando chaves, etc.)

Veja alguns pseudo-códigos que podem lhe dar uma ideia de como aplicar o exemplo ao qual você está vinculado:

if "%MY_ENV_VAR%"=="" goto ERROR
set DO_STUFF=%MY_ENV_VAR%\some_folder\doStuff.exe
...
goto DONE
:ERROR
echo You must set your MY_ENV_VAR environment variable.
:DONE

Já faz um tempo desde que eu escrevi um arquivo de lote, mas eu acho que é basicamente isso.

    
por 08.05.2018 / 19:50
0

hmm .. isso parece funcionar bem para mim.

Mas se o primeiro IF for o problema, tente o seguinte:

if not defined MY_ENV_VAR (
    echo You must set your MY_ENV_VAR environment variable.
    goto end
)
    
por 08.05.2018 / 19:48