如何在PowerShell中将丢包率与平均往返时延分别存入变量?
PowerShell提取Ping丢包率与平均往返时间的实现方案
完全可行,以下是具体实现步骤:
执行Ping命令并捕获输出
指定目标地址执行Ping请求,将完整输出捕获到变量中(示例以Google DNS 8.8.8.8为例,发送4次请求):$pingOutput = ping -n 4 8.8.8.8 | Out-String提取丢包率到独立变量
通过正则表达式从输出中匹配丢包率数值,并存入变量:# 英文环境匹配规则 $packageLoss = [regex]::Match($pingOutput, '(\d+)% loss').Groups[1].Value + '% loss' # 若系统是中文环境,替换为以下规则 # $packageLoss = [regex]::Match($pingOutput, '(\d+)% 丢失').Groups[1].Value + '% loss'提取平均往返时间到独立变量
用正则匹配平均往返时间的数值,存入变量:# 英文环境匹配规则 $avgRoundTrip = [regex]::Match($pingOutput, 'Average = (\d+) ?ms').Groups[1].Value + ' ms' # 若系统是中文环境,替换为以下规则 # $avgRoundTrip = [regex]::Match($pingOutput, '平均 = (\d+) ?ms').Groups[1].Value + ' ms'按指定格式输出
直接拼接两个变量输出即可:Write-Host "$packageLoss, $avgRoundTrip"
执行以上代码后,就能得到类似「0% loss, 14 ms」的输出,且丢包率和平均往返时间分别存储在$packageLoss和$avgRoundTrip两个独立变量中。
内容的提问来源于stack exchange,提问作者user18209625
相关产品推荐
相关产品推荐

