Как передать переменные окружения в качестве аргументов в System.Diagnostics.Process()? По какой-то причине использование пути переменной не работает. Например, я пытаюсь открыть проводник на пути% WINDIR%, это не удается:System.Diagnostics.Process(); StartInfo.Arguments использует переменные среды как аргумент
программа: explorer.exe арг:/п/е,% WINDIR%
var f = new System.Diagnostics.Process();
f.StartInfo.WorkingDirectory = Path.GetDirectoryName(Program);
f.StartInfo.FileName = Program;
f.StartInfo.Arguments = !string.IsNullOrWhiteSpace(Params) ? Params : null;
f.Start();
Интерпретация% windir% - это команда командного процессора Cmd.exe. Вам нужно будет сделать это самостоятельно, используйте Environment.GetFolderPath(). Или используйте параметр командной строки Cmd.exe,/c. –
Возможный дубликат [Как получить и установить переменные среды в C#?] (Http://stackoverflow.com/questions/185208/how-do-i-get-and-set-environment-variables-in-c) –