我有一个powershell脚本,调用可执行文件来执行一些数据处理,脚本需要从可执行文件中检索结果。想知道我有什么选择,我在板上进行这个进程间通信从.Net EXE返回数据到Powershell
- 可以让我的可执行文件直接返回一个字符串数组或对象(我不认为这是可能的)?
- exe文件设置和powershell脚本读取的易变变量?
- 菌种的可执行文件中的临时.Net远程服务器,并有PowerShell的平认为服务器得到的结果
我有一个powershell脚本,调用可执行文件来执行一些数据处理,脚本需要从可执行文件中检索结果。想知道我有什么选择,我在板上进行这个进程间通信从.Net EXE返回数据到Powershell
您可以将EXE的结果吐出到XML或CSV格式的标准输出中,并让PowerShell将其转换为[xml]或ConvertFrom-Csv。
可执行文件是以.NET编写没什么区别:这将是一个单独的进程,因此只对(在两者没有特定的支持)从一个进程将数据传递到另一个的机制是可用的:
(也可以使用理论上标准误差,但是这将是滥用它对于没有附加功能)
的标准输出的方法是最简单的:在该exe使用Console.WriteLine
(这是一个捷径Console.Out.WriteLine
),然后解析PowerShell中的字符串:
MyExe | Foreach-Object {
# Do something with $_ which will be a string
}
很明显,可以使用任何可以编码为字符串的数据格式。调用脚本也可以将整个输出积累到一个单一的值,并一次处理所有的输出。
管道是为进程间通信而设计的,尽管我不知道powershell脚本是否可以进行这种通信 –
另请参阅此主题:http://stackoverflow.com/questions/8506404/capture-return-value -of-an-net-exe-in-an-bat-file –
加上这个:http://social.microsoft.com/Forums/sl-SI/Offtopic/thread/691128c5-72a5-48c1-971e-50c6bccd8165 Man ,你没有长时间的Google解决方案,对吗?这两个结果都出现在第一个谷歌页面下的“.net exe结果”:) –