C'è un modo per impostare le variabili di ambiente per un singolo comando su Windows come ENVVAR=abc commandsu Unix?
Le variabili impostate dal setcomando su Windows sembrano rimanere per i seguenti comandi, ma questo non è quello che voglio.
C'è un modo per impostare le variabili di ambiente per un singolo comando su Windows come ENVVAR=abc commandsu Unix?
Le variabili impostate dal setcomando su Windows sembrano rimanere per i seguenti comandi, ma questo non è quello che voglio.
Risposte:
Dalla cmdshell corrente :
Devi cancellare tu stesso la variabile.
set ENVVAR=abc && dir & set ENVVAR=
Da un file batch:
Puoi usare setlocale endlocal.
@echo off
setlocal
set ENVVAR=abc && dir
endlocal
Usa una cmdshell figlio :
È possibile utilizzare cmd /cper creare una shell figlio.
La variabile è impostata nella shell figlio e non influisce sulla shell padre (come sottolineato in un commento di jpmc26 ).
cmd /C "set ENVVAR=abc && dir"
cmdprocesso separato e impostarli lì. Ad es cmd /C "set ENVVAR=abc && dir". Poiché non influirà sul processo padre, verrà effettivamente "cancellato" all'uscita.