Existe uma maneira de definir variáveis de ambiente para um único comando?
Do atual shell cmd
:
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 uma criança cmd
shell:
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 A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- cmd - Inicie um novo shell CMD e (opcionalmente) execute um programa de comando / executável.
- endlocal - Finaliza a localização das alterações do ambiente em um arquivo de lote. Passar variáveis de um arquivo de lote para outro.
- redirecionamento - Operadores de redirecionamento.
- definir - Exibir, definir ou remover variáveis de ambiente do CMD. As alterações feitas com o SET permanecerão apenas pela duração da sessão atual do CMD.
- setlocal - Defina opções para controlar a visibilidade de variáveis de ambiente em um arquivo em lotes.