Como obter valor da variável de ambiente do parâmetro de linha de comando passado

2

Eu tenho que usar / reference um valor de variável de ambiente que será passado como um argumento de linha de comando. Algo como abaixo

set myvar=%1
echo Value of %myvar% is %%myvar%%

Aqui em %%myvar%% , quero referenciar o valor desse ambiente varible

Uma chamada típica para este script será

script.bat JAVA_HOME
    
por Tushar Joshi 09.03.2015 / 10:28

1 resposta

3

Você não precisa da variável intermediária myvar . Se você quiser, basta substituir %myvar% por %1 abaixo.

Você precisa de dois ciclos de expansão.

Opção 1 - CALL

@echo off
call echo %%%1%%

Na primeira fase de análise

  • %% se expande para %
  • %1 se expande para JAVA_HOME
  • %% se expande para %

Na fase CALL, %JAVA_HOME% se expande para o valor que você está procurando.

Opção 2 - Expansão atrasada

@echo off
setlocal enableDelayedExpansion
echo !%1!

O formulário de expansão atrasada é muito mais fácil de ler

Veja Como o Windows Command Interpreter (CMD.EXE) analisa os scripts? para mais informações

    
por 09.03.2015 / 12:56