我想开发一个PowerShell应用程序,它能够根据前面的命令调用某些命令。此外,下一个命令必须能够从上一个命令中获取结果并对其执行一些操作。因此,我使用微软的PowerShell.SDK。
目前,我有以下方法,命令一个接一个地执行并等待对方。但不要在意结果。
public Task Execute(IJobExecutionContext context)
{
var details = (IList<(string modulepath,string arguments)>)context.JobDetail.JobDataMap["Commands"];
PowerShell ps = PowerShell.Create();
foreach (var detail in details)
{
ps.Commands.AddCommand("Start-Process").AddParameter("FilePath", detail.modulepath).AddParameter("ArgumentList", detail.arguments).AddParameter("Wait");
}
ps.Invoke();
return Task.FromResult(true);
}
有没有什么简单的方法可以从单个命令中获取错误或退出代码?还是我走错路了?谢谢你的任何建议。什么是正确的和最好的方法来做到这一点?
1条答案
按热度按时间8i9zcol21#
如果你按照gunr2171的建议使用本机process.Start方法,那么这可能是一个获取输出的示例方法:
或
上面的示例中没有完全更新,但提供了如何读取单个命令输出的想法