Как получить значение переменной среды от переданного параметра командной строки

Я должен использовать/ссылаться значение переменной среды, которое будет передано как параметр командной строки. Что-то как ниже

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

Здесь в %%myvar%% Я хочу сослаться на значение той среды varible

Типичный вызов к этому сценарию будет

script.bat JAVA_HOME
2
задан 9 March 2015 в 11:28
1 ответ

Вам не нужна промежуточная переменная myvar . Если вы этого хотите, просто замените % myvar% на % 1 ниже.

Вам потребуется два цикла расширения.

Вариант 1 - ВЫЗОВ

@echo off
call echo %%%1%%

В первая фаза анализа

  • %% расширяется до %
  • % 1 расширяется до JAVA_HOME
  • %% расширяется до %

В Фаза ВЫЗОВА, % JAVA_HOME% расширяется до значения, которое вы ищете.

Вариант 2 - Отложенное расширение

@echo off
setlocal enableDelayedExpansion
echo !%1!

Форму отложенного раскрытия намного легче читать


См. Как выполняется интерпретатор команд Windows (CMD.EXE) анализирует скрипты? для получения дополнительной информации

3
ответ дан 3 December 2019 в 10:43

Теги

Похожие вопросы