2015-08-16 134 views
2

PowerShell可以自动执行吗?即是否有一个PowerShell的COM接口,可以将它作为类型库接口导入到Delphi中,以实现自动化,如果是,那么相关的文件名是什么?我发现很多引用来自一个PowerShell脚本自动化的东西,但我还没有找到任何可以说我是否可以通过COM来控制PowerShell本身,我可以它是MS Word或其他,并可能从它接收事件。我想要做的就是从Delphi应用程序中传递一个命令来执行一些任意的CmdLet,并在它执行脚本时从它获取状态信息(否则我会在做一个ShellExecute做)。德尔福PowerShell的自动化?

我不确定我是否能够找到任何东西的事实是因为PowerShell的设计不是自动化的,还是因为我没有设法构造一个有效的查询来筛选出可以完成的所有自动化使用PowerShell作为脚本宿主。

这是在Win7 64位或Win10升级上使用XE8,顺便说一句。

+1

谢谢,@Craig。当我感觉有点新鲜时,我会在早上看看。过分兴奋的思考方式,今天分解备忘录; =)。 – MartynA

+0

对不起,我删除了我的评论,该链接是http://support.smartbear.com/viewarticle/72616/现在看它可能对你没有好处我不知道,它说'从TestComplete运行PowerShell脚本' – Craig

+0

也许这可以帮助你:http://delphidabbler.com/software/consoleapp。它是一个与控制台窗口交互的类 – RaelB

回答

1

在阐述的http://delphidabbler.com/software/consoleapp RaelB的建议:

这因为PowerShell的本身工作,我可以作为一个控制台应用程序来运行。如果你想运行cmdlet的 “ABC -param”,那么你会调用TPJConsoleApp实例的执行方法:

app.Execute( 'PowerShell的-command ABC -param')

彼得Johnson(delphiDabbler)提供了几个用于通过管道,文件等与控制台应用程序进行交互的示例,以便从Cmdlet的stdOut(stdIn和stdErr也可用)中获取状态信息。工作代码可以从最合适的例子中快速获得。

可选您可能需要为PowerShell的提供额外的参数:

https://msdn.microsoft.com/en-us/powershell/scripting/core-powershell/console/powershell.exe-command-line-help

+0

谢谢你。我想到的这个项目从来没有完全实现,但当我追上其他一些东西时,我会再次考虑它。同时提升+1。 – MartynA