Я выполняю скрипт powershell с использованием C#, но когда я пытаюсь получить переменную окружения внутри скрипта powershell, это не сработает.
Если я запускаю скрипт powershell вручную, используя консоль, он работает.
У вас есть идея, как решить эту проблему?
Пример кода для C#:
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
// set directory for ps
if (!string.IsNullOrEmpty(sessionPath))
runspace.SessionStateProxy.Path.SetLocation(sessionPath);
Pipeline pipeline = runspace.CreatePipeline();
Command command = new Command(script, false);
pipeline.Commands.Add(command);
pipeline.Commands.Add("Out-String");
pipeline.InvokeAsync();
сценарий PowerShell:
$path = $env:PATH;
write-output $path # this is empty ! $env does seems to exist in the runspace ?
Я нашел обходное решение, используя скрипт [здесь] (http://stackoverflow.com/a/14382047/1832488), но я бы предпочел найти, как настроить пространство, чтобы была установлена переменная Env. – codea