Existe uma maneira de definir variáveis de ambiente para um único comando?
No cmd
shell atual :
Você precisa limpar a variável você mesmo.
set ENVVAR=abc && dir & set ENVVAR=
De um arquivo em lotes:
Você pode usar setlocal
e endlocal
.
@echo off
setlocal
set ENVVAR=abc && dir
endlocal
Use um cmd
shell filho :
Você pode usar cmd /c
para criar um shell filho.
A variável é definida no shell filho e não afeta o shell pai (como apontado em um comentário por jpmc26 ).
cmd /C "set ENVVAR=abc && dir"
Leitura adicional
- Um índice AZ da linha de comando do Windows CMD - uma excelente referência para todos os itens relacionados à linha de cmd do Windows.
- cmd - Inicie um novo shell do CMD e (opcionalmente) execute um programa de comando / executável.
- endlocal - finaliza a localização das alterações do ambiente em um arquivo em lotes. Passe variáveis de um arquivo em lotes para outro.
- redirecionamento - operadores de redirecionamento.
- set - Exibe, define ou remove variáveis de ambiente CMD. As alterações feitas com o SET permanecerão apenas durante a sessão atual do CMD.
- setlocal - Defina opções para controlar a visibilidade de variáveis de ambiente em um arquivo em lotes.