我试图使用do循环运行两次tracert命令。我只是通过计算“跟踪完成”的次数来做到这一点。显示。所以在下面的脚本中,我希望循环运行,直到变量包含“跟踪完成”。2次。但很明显这不管用。
do {
$2+= tracert $ip
} until ( $2.Contains("Trace complete.") -ge 2)
#( $2 | select-string "Trace complete").length -eq 2 我也尝试了select字符串方法,但这两个方法都不会导致循环结束,直到出现了两次。有什么帮助吗?
编辑1:
我还想将tracert的输出存储在一个变量中,这样我就可以查看它。
发布于 2020-05-27 20:22:07
tracert命令返回字符串的数组,因此Contains()函数在这里不能工作。
这里有一个解决方案,我增加了$count变量,它是由0 1初始化的,每次tracert命令包含使用regex完成的字符串跟踪时。如果联接字符串不包含该术语,则通过增加变量。
最后,当$count变量大于等于2时,直到条件停止。
$count = 0
$output = do {
$output = tracert 127.0.0.1
if (($output -join '' -match 'Trace complete\.')) {
$output # outputs the tracert result
$count++
}
} until ( $count -ge 2)
$outputhttps://stackoverflow.com/questions/62051685
复制相似问题