Вы пробовали:
Test.exe "%Temp%"
Этого может быть достаточно, чтобы не допустить расширения операционной среды переменной среды.
Либо так, либо подумайте, действительно ли вам нужно передать ОС-конкретная форма имени переменной среды.Не зная каких-либо особенностей Test.exe, возможно, вы могли бы просто использовать:
Test.exe Temp
Затем внутри Test.exe вы можете просто получить переменную среды по имени.Я думаю, что в любом случае это будет в большей степени соответствовать соглашению.
Кроме того (опять же, без более подробной информации, трудно сказать), кажется странным передавать имя переменной среды во время выполнения.Является ли имя переменной динамическим?Не могли бы вы поместить имя переменной среды в статическую переменную, чтобы Test.exe мог просто извлечь имя из переменной с последовательным именем, например «Test_exe_init»?
set Text_exe_init=Some_Dynamic_Variable_Name
Test.exe
И внутри Text.exe этоиспользует
string foo=GetEnvironmentVariable("Test_exe_init");
Как получить и установить переменные окружения в C #?
Просто мысль ...