在PowerShell团队的this blog post中,他们专注于豪华命令。
有没有办法在不加载任何PS命令的情况下调用Create()
,使其像系统进程执行器(System.Diagnostics.Process
的替代品)一样?我们如何使用System.Management.Automation.PowerShell
执行以下操作:
node.exe some_module input_file_path --switch1 --switch2=value2
如果可以1,下一个问题;这会比Diagnostics.Process.Start()
有没有办法在交互模式下(在后台线程中)调用PS实例,以交互模式运行node.exe来监听来自IRemoteSource
的调用?相反; 为每次通话调用,执行命令和关闭。
这是一种交互式模式方式,提升性能(给定IRemoteSource
是否会使用大量node.js
命令来调用?
答案 0 :(得分:2)
是的,这很简单:
ps.AddScript("node.exe some_module input_file_path --switch1 --switch2=value2");
关于#2,我怀疑它会更快,因为有更多的机器可以支持PowerShell引擎/工作区。关于#3& #4你需要在这里解释一下你需要什么。什么是IRemoteSource以及它如何与node.exe交互? FWIW你可以在另一个线程上执行PowerShell引擎,只要node.exe正在运行,ps.Invoke()调用就不会返回。如果您需要主机应用程序和node.exe之间的交互,您可以查看实现PowerShell host interfaces。