为什么此Powershell代码无法按预期工作

时间:2019-10-18 04:51:59

标签: powershell

我有一段简单的代码,应该可以在10秒后停止计时器并显示持续时间。

$StopWatch = New-Object System.Diagnostics.Stopwatch
$StopWatch.Start()
 while ($StopWatch.Elapsed.Seconds -eq "10")
        {
            $StopWatch.Stop()
            $StopWatch.Elapsed.Seconds
        }

问题是,当我通过ISE运行它时,它不会停止在10秒钟,它将继续运行,而会执行应做的事情。我用If else尝试了一下,但也没有解决。

我在这里想念什么。

1 个答案:

答案 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