2
我試圖編寫一個PowerShell腳本,其中包括運行兩個外部程序,收集一個輸出並將其提供給另一個。PowerShell和交互式外部程序
的問題是,所述第二程序是交互式並要求:
- 密碼
- 一個選項(1,2,或3)
- 一個選項(Y或N)
- 的輸出外部程序1
還請注意,這是在XP上使用PowerShell V1和.NET 2.0(不,我不能升級)
任何想法,我會怎麼做呢?
CC
我試圖編寫一個PowerShell腳本,其中包括運行兩個外部程序,收集一個輸出並將其提供給另一個。PowerShell和交互式外部程序
的問題是,所述第二程序是交互式並要求:
- 密碼
- 一個選項(1,2,或3)
- 一個選項(Y或N)
- 的輸出外部程序1
還請注意,這是在XP上使用PowerShell V1和.NET 2.0(不,我不能升級)
任何想法,我會怎麼做呢?
CC
試試,看看你是否可以通過標準輸入例如通過選項:
$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提示符保持在前臺窗口。