我目前正在製作一個bat腳本,來ping主機,並返回Packetloss百分比和平均ms。Echo%var%打印FINDSTR參數
我正在使用/ f來獲得結果。
唯一的問題是,數據包丟失和平均ms在兩條不同的線路上。
因此,我使用subcalls和findstr爲每個設置一個變量。
但是,當我試圖再次調用該變量時,它包含了findstr命令的所有參數。
我該怎麼辦?
下面的代碼:
@echo off
SETLOCAL
SET PingCMD=ping.exe -w 300 -n 1 127.0.0.1
FOR /f "tokens=3,6,9,10,11,12 delims=," %%A IN ('%PingCMD%') DO (
call :GetLoss %%A
call :GetAvg %%A
)
echo PacketLoss %loss% Average %avg%
pause
:GetLoss
SET loss=%1 %2 %3 %4 ^| findstr "loss tab"
GOTO :eof
:GetAvg
SET avg=%1 %2 %3 ^| findstr "Average Gennemsnit average gennemsnit"
GOTO :eof
EndLocal
你不需要',6,9,10,11,12'。無論如何 - 好的解決方案。 – Stephan
工程很好,ty! :) 我已經添加,丹麥equivalant(gennemsnit): '代碼 :GetLoss IF 「%1」 == 「迷失」 SET損失=%2%3%4 IF 「%1」 == 「Tabt」SET損失=%2%3%4 GOTO:eof :GetAvg 如果「%1」==「Average」SET avg =%2%3 如果「%1」==「Gennemsnit」SET avg =%2%3 GOTO:EOF ' – Saku