2010-04-23 63 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提示符保持在前台窗口。