2015-08-16 91 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