2010-04-23 55 views
2

我試圖編寫一個PowerShell腳本,其中包括運行兩個外部程序,收集一個輸出並將其提供給另一個。PowerShell和交互式外部程序

的問題是,所述第二程序是交互式並要求:
- 密碼
- 一個選項(1,2,或3)
- 一個選項(Y或N)
- 的輸出外部程序1

還請注意,這是在XP上使用PowerShell V1和.NET 2.0(不,我不能升級)

任何想法,我會怎麼做呢?

CC

回答

0

試試,看看你是否可以通過標準輸入例如通過選項:

$prog1out = prog1 
"mypassword`r`n1`r`nY`r`n$prog1out" | prog2 

如果不工作,另一種方式(有點hackish的,也許脆)是使用如的SendKeys:

[reflection.assembly]::LoadWithPartialName("System.Windows.Forms") 
[windows.forms.sendkeys]::SendWait("mypassword`r`n") 
Start-Sleep -sec 1 # may need to vary this 
[windows.forms.sendkeys]::SendWait("1`r`n") 
# rinse and repeat 

注意的SendKeys工作對前臺窗口,這可能是你的問題,除非你能確保PowerShell提示符保持在前臺窗口。