簡體   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