Назад | Перейти на главную страницу

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

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

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

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

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

script.bat JAVA_HOME

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

Вам нужно два раунда расширения.

Вариант 1 - ЗВОНИТЕ

@echo off
call echo %%%1%%

На первом этапе разбора

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

На этапе ЗВОНОК, %JAVA_HOME% расширяется до значения, которое вы ищете.

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

@echo off
setlocal enableDelayedExpansion
echo !%1!

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


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