gpt4 book ai didi

powershell - 如何在 PowerShell 中为读取主机配置超时

转载 作者:行者123 更新时间:2023-12-02 22:17:20 24 4
gpt4 key购买 nike

就像我说的,这段代码适用于 PowerShell 版本 2,但不适用于 PowerShell 版本 5。

function wait
{
$compte = 0
Write-Host "To continue installation and ignore configuration warnings type [y], type any key to abort"
While(-not $Host.UI.RawUI.KeyAvailable -and ($compte -le 20))
{
$compte++
Start-Sleep -s 1
}
if ($compte -ge 20)
{
Write-Host "Installation aborted..."
break
}
else
{
$key = $host.ui.rawui.readkey("NoEcho,IncludeKeyup")
}
if ($key.character -eq "y")
{Write-Host "Ignoring configuration warnings..."}
else
{Write-Host "Installation aborted..."
}}

最佳答案

official文档或 Read-Host -?会告诉它不可能使用 Read-Host以这种方式。没有可能的参数告诉它以某种超时运行。

但是还有various其他 questions详细说明如何在 PowerShell 中执行此操作(通常使用 C#)。

这个想法似乎是检查用户何时使用 $Host.UI.RawUI.KeyAvailable 按下一个键。并检查您的超时时间。

一个简单的工作示例如下:

$secondsRunning = 0;
Write-Output "Press any key to abort the following wait time."
while( (-not $Host.UI.RawUI.KeyAvailable) -and ($secondsRunning -lt 5) ){
Write-Host ("Waiting for: " + (5-$secondsRunning))
Start-Sleep -Seconds 1
$secondsRunning++
}

您可以使用 $host.UI.RawUI.ReadKey获取按下的键。如果您需要比简单按钮按下更复杂的输入,则此解决方案可能无法接受。也可以看看:
  • Windows PowerShell Tip of the Week - Pausing a Script Until the User Presses a Key
  • PowerTip: Use PowerShell to Wait for a Key Press (Hey, Scripting Guy!)
  • 关于powershell - 如何在 PowerShell 中为读取主机配置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43733089/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com