私はC#からpowershellスクリプトを実行しようとしています。スクリプトに文字列を渡すのに問題はありませんが、PowerShellスクリプトに配列を渡そうとすると例外がスローされます。ここ は、C#のコードである:ここでC#PowerShellスクリプトに配列を渡す
string [] test = {"1","2","3","4"};
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.ApartmentState = System.Threading.ApartmentState.STA;
runspace.ThreadOptions = PSThreadOptions.UseCurrentThread;
runspace.Open();
RunspaceInvoke invoker = new RunspaceInvoke();
invoker.Invoke("Set-ExecutionPolicy Unrestricted");
Pipeline pipeline = runspace.CreatePipeline();
Command myCmd = new Command(@"C:\test.ps1");
CommandParameter param = new CommandParameter("responseCollection", test);
myCmd.Parameters.Add(param);
pipeline.Commands.Add(myCmd);
// Execute PowerShell script
Collection<PSObject> results = pipeline.Invoke();
は、PowerShellスクリプトです:
param([string[]] $reponseCollection)
$a = $responseCollection[0]
このコードは、それがスロー実行するたびに:
Cannot index into a null array.
私は、コードを実行することを知っていますpowershellスクリプトは、文字列をpowershellスクリプトに渡すときに正しいですが、完全にテストされています。
これは問題だとは思えません。問題があった場所を絞り込むのに数時間かかりました。 – firthh