gpt4 book ai didi

powershell - 在 powershell 脚本中添加超时部分

转载 作者:行者123 更新时间:2023-12-02 15:52:48 25 4
gpt4 key购买 nike

我正在尝试在 30 秒后测试超时。

示例代码:

$a = "y"
$b = "n"
$timeout = New-TimeSpan -Seconds 30
$stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
$stopwatch.Start()
$timeout.Seconds
$stopwatch.elapsed.Seconds
do{

if($a -eq "n"){
Write-Host "This block will never run"
break
}

if($stopwatch.elapsed.Seconds -lt $timeout.Seconds){
Write-Host "Testing this block: Time OUT!!"
break
}

}while($a -eq $b)

$stopwatch.Stop()

但是 if block if($stopwatch.elapsed.Seconds -lt $timeout.Seconds) 为真,即使 $stopwatch.elapsed.Seconds 值为 0 且 $timeout.Seconds 值为 30 在循环中完成代码几毫秒而不是 30 秒来打印超时语句。

谁能给我指点以解决这个问题。

最佳答案

一些事情:

  • 您不需要这两行:$timeout.Seconds$stopwatch.elapsed.Seconds 在循环之上
  • 你的 while 条件应该是 while($a -ne $b)
  • 循环内的测试应为 if($stopwatch.elapsed.Seconds -ge $timeout.Seconds)

尝试

$a = "y"
$b = "n"
$timeout = New-TimeSpan -Seconds 30
$stopwatch = [System.Diagnostics.Stopwatch]::new()
$stopwatch.Start()
do {
if($stopwatch.Elapsed.Seconds -ge $timeout.Seconds){
Write-Host "Testing this block: Time OUT!!"
break
}
# no timeout, so proceed with what needs to be done here
# . . .
} while($a -ne $b) # loop forever unless you set $a equal to $b in the loop somewhere

$stopwatch.Stop()

关于powershell - 在 powershell 脚本中添加超时部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72086519/

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