Как я могу получить переменную $ test из приложения C#?C# получить переменную из скрипта powershell
Я пробовал так:
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
Pipeline pipeline = runspace.CreatePipeline();
//Here's how you add a new script with arguments
Command myCommand = new Command(scriptFile);
CommandParameter testParam = new CommandParameter("key", "value");
CommandParameter testParam2 = new CommandParameter("key", "value");
CommandParameter testParam3 = new CommandParameter("key", "value");
myCommand.Parameters.Add(testParam);
myCommand.Parameters.Add(testParam2);
myCommand.Parameters.Add(testParam3);
pipeline.Commands.Add(myCommand);
// Execute PowerShell script
var results = pipeline.Invoke();
var resultVariable = runspace.SessionStateProxy.PSVariable.GetValue("test");
resultVariable
является null
. Но я заполнил его в powershell с int (т. Е. $ Test = 4).
Вам не нужно использовать 'GetValue (« $ test »)' (с '$') вместо этого? –
Это тоже не работает ... Я могу вызвать функцию с переменной PSHome, это работает. Но не переменная, которую я установил. – greenhoorn
Может быть дубликат: http://stackoverflow.com/questions/17467629/return-powershell-variable-value-to-c-sharp-application –