[英]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.