【问题标题】:Why this Powershell code is not working as expected为什么这个 Powershell 代码没有按预期工作
【发布时间】:2019-10-18 04:51:59
【问题描述】:

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

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

问题是当我通过 ISE 运行它时,它不会在 10 秒处停止,它会继续运行而不是做它应该做的事情。我用If else 尝试了这个,也没有成功。

我在这里缺少什么。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您正在执行错误的 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
    

    【讨论】:

      猜你喜欢
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 2020-11-10
      • 2021-12-11
      • 2017-06-08
      • 2020-07-24
      • 2011-11-20
      相关资源
      最近更新 更多