我有一段简单的代码,应该可以在10秒后停止计时器并显示持续时间。
$StopWatch = New-Object System.Diagnostics.Stopwatch
$StopWatch.Start()
while ($StopWatch.Elapsed.Seconds -eq "10")
{
$StopWatch.Stop()
$StopWatch.Elapsed.Seconds
}
问题是,当我通过ISE运行它时,它不会停止在10秒钟,它将继续运行,而会执行应做的事情。我用If else
尝试了一下,但也没有解决。
我在这里想念什么。
答案 0 :(得分:3)
您正在执行while循环错误。它只会在定时器为10秒时循环播放,否则它将跳过。
我想你在下面。代码自我解释。 Do
没有任何Until
条件。
$StopWatch = New-Object System.Diagnostics.Stopwatch
$StopWatch.Start()
Do{}
Until($StopWatch.Elapsed.Seconds -eq "10")
$StopWatch.Stop()
$StopWatch.Elapsed.Seconds
您也可以
$StopWatch = New-Object System.Diagnostics.Stopwatch
$StopWatch.Start()
# Notice the -ne (not equals)
While($StopWatch.Elapsed.Seconds -ne "10") {}
$StopWatch.Stop()
$StopWatch.Elapsed.Seconds