首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直到变量包含两次字符串

问直到变量包含两次字符串
EN

Stack Overflow用户
提问于 2020-05-27 19:50:11
回答 1查看 366关注 0票数 1

我试图使用do循环运行两次tracert命令。我只是通过计算“跟踪完成”的次数来做到这一点。显示。所以在下面的脚本中,我希望循环运行,直到变量包含“跟踪完成”。2次。但很明显这不管用。

代码语言:javascript
复制
do {
         $2+= tracert $ip 

   } until ( $2.Contains("Trace complete.") -ge 2) 

 #(  $2 | select-string "Trace complete").length -eq 2 

我也尝试了select字符串方法,但这两个方法都不会导致循环结束,直到出现了两次。有什么帮助吗?

编辑1:

我还想将tracert的输出存储在一个变量中,这样我就可以查看它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-27 20:22:07

tracert命令返回字符串的数组,因此Contains()函数在这里不能工作。

这里有一个解决方案,我增加了$count变量,它是由0 1初始化的,每次tracert命令包含使用regex完成的字符串跟踪时。如果联接字符串不包含该术语,则通过增加变量。

最后,当$count变量大于等于2时,直到条件停止。

代码语言:javascript
复制
$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) 

$output
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62051685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档