¿Por qué el comando set no afecta a los comandos seguidos inmediatamente por & / &&?

¿Por qué el comando set no afecta a los comandos seguidos inmediatamente por & / &&?

Tengo un montón de comandos que usan una variable del sistema y son comandos de una línea como este:

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

Sin embargo, noté que la variable del comando set no está "configurada" para los comandos en la misma línea. Si vuelvo a ejecutar el segundo comando, podrá leer la variable actualizada. Puedo usar & o && y los efectos son los mismos. Este comportamiento ocurre tanto con archivos por lotes como simplemente colocándolos en el símbolo del sistema.

¿Cómo consigo que el setcomando afecte las declaraciones siguientes &o &&?

Respuesta1

Esto se debe a que toda la línea de comando se evalúa a la vez, por lo que la variable testse resuelve antes de ejecutar el setcomando.

Una solución fácil podría ser poner los comandos en líneas separadas en archivos por lotes y ejecutarlos.

información relacionada