Почему этот код Powershell не работает должным образом - PullRequest
0 голосов
/ 18 октября 2019

У меня есть этот простой кусок кода, который должен останавливать таймер на 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 Ответ

3 голосов
/ 18 октября 2019

Вы неправильно выполняете цикл 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...