¿Hay alguna manera de establecer variables de entorno para un solo comando?
Desde el cmd
shell actual :
Tienes que borrar la variable tú mismo.
set ENVVAR=abc && dir & set ENVVAR=
De un archivo por lotes:
Puedes usar setlocal
y endlocal
.
@echo off
setlocal
set ENVVAR=abc && dir
endlocal
Use un cmd
caparazón secundario :
Puede usar cmd /c
para crear un shell hijo.
La variable se establece en el shell hijo y no afecta al shell padre (como se señala en un comentario de jpmc26 ).
cmd /C "set ENVVAR=abc && dir"
Otras lecturas
- Un índice AZ de la línea de comando CMD de Windows : una excelente referencia para todo lo relacionado con la línea cmd de Windows.
- cmd : inicie un nuevo shell CMD y (opcionalmente) ejecute un comando / programa ejecutable.
- endlocal : finaliza la localización de los cambios del entorno en un archivo por lotes. Pase variables de un archivo por lotes a otro.
- redirección : operadores de redireccionamiento.
- set : muestra, establece o elimina variables de entorno CMD. Los cambios realizados con SET solo se mantendrán durante la sesión CMD actual.
- setlocal : establece opciones para controlar la visibilidad de las variables de entorno en un archivo por lotes.