powershell求救
powershell吧
全部回复
仅看楼主
level 1
moser10 楼主
各位高手,现在有几个问题在网上找了很多也找不到
1. 如何在powershell中将第一行命令作为结果判断然后继续执行下面命令?
比如ping命令,我希望判断出现在在time>5ms的结果上,如果当前结果有出现Time>5ms则重新执行一边ping命令,否则执行ping xx -t一直ping下去。
2. 如何在powershell中启动另外一个poweshell窗口且命令运行在另外一个窗口内?
3. 如果希望完成从ping结果中取ip地址然后作为参数,进行下一个操作。
比如ping www.baidu.com, 我们可以重定向到文本,然后通过get-content拿到baidu的ip地址。
但是我不会写这个正则。。。。请高手教导。
然后将拿到的ip地址作为参数,进行下一个ping操作
高手出现求教啊
2014年04月22日 03点04分 1
level 4
你可以去 http://www.pstips.net/ 这边问一下,这里的博主是Powershell 专家
2014年04月22日 09点04分 2
level 2
难得有朋友在这里鼓励了一下我的博客,我得对得起大家的鼓励啊!!![花心]
第一个问题:
while($true)
{
#第一次ping
$pingResult=ping 8.8.8.8
#空数组
$times = @()
#过滤并匹配ping结果
$pingResult | foreach {
if($_ -match '时间=(?<time>.*)ms')
{
$times+=$Matches.time
#将ping返回的时间3ms则返回3,记录到$times中
}
}
#此时得到的应当是本次ping的所有时间数组
#如果有 time> 5ms 再执行一次ping
if($times.Where({$_ -gt 5}))
{
#再执行一次ping
#省略.....
#然后跳出循环
break
}
#否则
else
{
#否则执行ping xx -t一直ping下去
#省略......
#我不知道ping下去的意义在哪里
}
}
2014年04月22日 15点04分 3
level 2
第二个问题:
如何在powershell中启动另外一个poweshell窗口且命令运行在另外一个窗口内?
Start-Process powershell -ArgumentList Get-Service
2014年04月22日 15点04分 4
level 2
第三个问题: 如果希望完成从ping结果中取ip地址然后作为参数,进行下一个操作。
加入执行结果是这样:
PS I:\Users\非苔> ping www.pstips.net
正在 Ping www.pstips.net [61.155.149.85] 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
61.155.149.85 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
要过滤这个IP地址非常方便:
先把第二行拿出来看看:
PS I:\Users\非苔> $result = ping www.pstips.net
PS I:\Users\非苔> $result[1]
正在 Ping www.pstips.net [61.155.149.85] 具有 32 字节的数据:
也就是说要过滤中括号中的东东啦:
PS I:\Users\非苔> $result[1] -match '\[(?<ip>.*)\]'
True
PS I:\Users\非苔> $Matches.ip
61.155.149.85
2014年04月22日 16点04分 5
level 2
总结:其实上面的重点是正则表达式中,如果通过group的概念,筛选关键信息。
可以参考:http://www.pstips.net/regex-form-group.html
另外您可以点击博客上的广告赞助一下,算是乞讨吧,哈哈[玫瑰]
2014年04月22日 16点04分 6
level 1
如果是用cmd脚本的话,借助一个txt文档应该是能完成这个工作的吧,
将ping的结果记录到文本文档中,然后用for循环去判断。
加我啊!私信你了!
2014年04月22日 19点04分 7
level 1
moser10 楼主
博主的主页我最近常看啊!!学到了不少,但是没有这么针对性的解决办法。
再有就是那个老大的早泄广告让我特别不敢经常开着:)
我研究一下各位神仙的回帖。
谢谢谢谢
2014年04月23日 03点04分 8
早泄的广告不能怪我啊,要怪度娘啊。[鄙视]
2014年04月23日 09点04分
level 1
moser10 楼主
其实第一个问题只是用ping命令做引申,实际上我用的是iperf这个工具的命令,查看吞吐量的。问大神ping怎么写的意义就是想看看自己能不能照着葫芦画个嫖出来。
第二个问题好像没有新打开一个ps终端运行。比如我的脚本就两句话:
Start-Process powershell -ArgumentList Get-Service
ping www.baidu.com
然后运行,还是会在当前ps中进行
:)
2014年04月23日 04点04分 9
level 2
2014年04月23日 09点04分 10
1