Por que o comando set não afeta os comandos imediatamente seguidos por & / &&?

1

Eu tenho um monte de comandos usando uma variável de sistema e eles são um dos comandos alinhados assim:

set test="blah" && echo %test%

No entanto, notei que a variável do comando set não é "setada" para os comandos na mesma linha. Se eu executar novamente o segundo comando, ele poderá ler a variável atualizada. Eu posso usar o & ou & & e os efeitos são os mesmos. Esse comportamento ocorre com arquivos em lotes e simplesmente colocando-o no prompt de comando.

Como faço para que o comando set afete as declarações após & ou && ?

    
por Nelson 08.12.2015 / 09:43

1 resposta

1

Isso porque toda a linha de comando é avaliada de uma vez, portanto, a variável test é resolvida antes de executar o comando set .

Um conserto fácil poderia ser colocar os comandos em linhas separadas em um arquivo de lote e executá-lo.

    
por 08.12.2015 / 10:10