No Bash eu posso criar variáveis de ambiente TEMPORARY em uma linha de comando. Para eample
DEBUG=foo somecommand
Isso define a variável environmnet DEBUG
, mas apenas para somecommand
. Quando a linha terminar, DEBUG
não está mais definido.
Posso fazer algo semelhante no processador de comandos do Windows?
Nota: O uso de SET
não funciona. Isso configura o ambiente atual dos processadores de comandos, não apenas o comando prestes a ser executado.
Para dar outro exemplo, aqui está um pequeno programa node.js que imprime o valor de uma única variável de ambiente
// test.js
console.log('${process.argv[2]}='${process.env[process.argv[2]]}'');
Vamos executá-lo no bash
$ export FOO=abc
$ node test.js FOO
FOO='abc'
Então vamos executá-lo com uma configuração temporária
$ FOO=def node test.js FOO
FOO='def'
Verifique se o FOO ainda está abc
$ echo $FOO
abc
Como posso realizar a mesma coisa no prompt de comando do Windows?
Uma maneira parece ser relançar o processador de comandos como em
cmd /S /C "set "FOO=def" & node test.js FOO"
Existe outra maneira ou é isso?