使用Powershell,我正在使用invoke-expression
启动一些可执行文件,如:
Invoke-Expression "c:exec.exe"
现在我的问题是,这位高管显示了类似"暂停并按任意键继续"的内容。
我试过了:
Function Run-Tool
{
Invoke-Expression "c:exec.exe"
$host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
但运气不好。
我的问题是,我可以忽略这条消息吗?或者有没有一种方法可以监控输出并模拟按下任何键?
如果exec.exe
是一个常规控制台应用程序,则需要一个换行符la:
Console.Write("Press any key to exit...");
Console.ReadLine();
然后你可以用管道向它发送一条新行:
"`n" |& C:exec.exe
您可以使用processstartinfo和process:将回车键从powershell重定向到程序
$psi = New-Object System.Diagnostics.ProcessStartInfo;
$psi.FileName = "C:yourexe.exe";
$psi.UseShellExecute = $false;
$psi.RedirectStandardInput = $true;
$p = [System.Diagnostics.Process]::Start($psi);
Start-Sleep -s 2 # if your exe needs time to give output
$p.StandardInput.WriteLine("`n");
使用$host.UI.RawUI.ReadKey
不会执行您想要的操作-ReadKey
函数会等待输入并返回所按下键的信息。因此,它不是在发送输入,而是在等待输入。
这个答案与你的情况有关——也许你可以使用那里建议的方法。