繁体   English   中英

如何忽略暂停-在执行文件时按Powershell中的任何键

[英]How to ignore pause - press any key - in Powershell while executing file

使用Powershell我正在使用invoke-expression来启动一些可执行文件,例如:

Invoke-Expression "c:\exec.exe"

现在我的问题是该执行人员显示的是“暂停并按任意键继续”之类的内容。

我试过了:

Function Run-Tool
{
    Invoke-Expression "c:\exec.exe"
    $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}

但是没有运气。

我的问题是我可以忽略该消息吗?还是可以监视输出并模拟按任意键?

如果exec.exe是常规控制台应用程序,需要换行符:

Console.Write("Press any key to exit...");
Console.ReadLine();

然后,您可以通过管道将换行符发送给它:

"`n" |& C:\exec.exe

您可以使用processstartinfo和process将Enter键从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函数等待输入并返回有关所按下键的信息。 因此,它不等待发送输入,而是在等待输入。

这个答案与您的情况有关-也许您可以使用此处建议的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM