Como você define variáveis de ambiente para um único comando no Windows? [duplicado]

10

Existe uma maneira de definir variáveis de ambiente para um único comando no Windows como ENVVAR=abc command no Unix?

Variáveis definidas pelo comando set no Windows parecem permanecer nos seguintes comandos, mas não é isso que eu quero.

    
por 谷口昂平 06.03.2016 / 18:31

1 resposta

14

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.
por 06.03.2016 / 18:44