Как передать имя переменной среды в качестве аргумента? - PullRequest
0 голосов
/ 10 мая 2018

У меня есть batch.bat с одним входным аргументом %1. Я хочу запустить скрипт как: batch.bat PATH. Я хотел бы, чтобы это отображало переменную среды PATH с echo.

Я пытался:

@echo %1
E:\>batch.bat PATH
PATH

но мне бы хотелось иметь содержимое переменной окружения PATH.

E:\>batch.bat PATH
C:\Windows;   

1 Ответ

0 голосов
/ 10 мая 2018

Вам нужно отложенное расширение для вывода переменной, на которую ссылается аргумент строки cmd.
Эта партия использует два разных метода для этого,

  • псевдо-вызов с удвоенными знаками процента (который заставляет анализатор дважды оценивать строку, при первом проходе уменьшая два %% до одного во 2-м проходе, остальные переменные уже расширены) и
  • с использованием ! вместо обычного одиночного знака процента с предыдущей командой setlocal enabledelayedexpansion

:: Q:\Test\2018\05\10\SO_50280684.cmd
@Echo off&SetLocal EnableDelayedExpansion
Echo(%1
Echo(!%1!
Call Echo(%%%1%%

Я использую разделитель команд ( вместо пробела для подавления Echo is off сообщения в случае пустой переменной.

Пример с командой

>SO_50280684.cmd PROCESSOR_ARCHITECTURE
PROCESSOR_ARCHITECTURE
AMD64
AMD64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...