Вам нужно отложенное расширение для вывода переменной, на которую ссылается аргумент строки 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