我有以下循环:
$output = (command)
do {
something
} while ($output -match "some string")
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.我想在循环中添加超时,我该怎么做?期望是在某些时候输出将不匹配字符串,但如果输出永远匹配字符串,我不希望它永远运行.
Mar*_*ndl 11
只需使用Get-Datecmdlet并在您的while情况下检查它.例:
$startDate = Get-Date
$output = (command)
do {
something
} while ($output -match "some string" -and $startDate.AddMinutes(2) -gt (Get-Date))
Run Code Online (Sandbox Code Playgroud)
小智 6
尽管使用Get-DateCmdlet 是有效的,但更简洁的方法是使用该类System.Diagnostics.Stopwatch,该类在 .NET Core >= 1.0 中可用。
$timeout = New-TimeSpan -Seconds 5
$stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
do {
# do stuff here
} while ($stopwatch.elapsed -lt $timeout)
Run Code Online (Sandbox Code Playgroud)
资料来源:
| 归档时间: |
|
| 查看次数: |
6851 次 |
| 最近记录: |