Batch file 删除ping标记中要使用的ping统计数据中的数字后的文本
我正在批量进行一个简单的ping带宽测试,以获得以kb/s为单位的速度,在平均往返时间为123ms之后,我遇到了ms拖车的问题。批处理无法处理数字令牌中的字母,并且它没有空间来设置另一个令牌。我使用Batch file 删除ping标记中要使用的ping统计数据中的数字后的文本,batch-file,for-loop,windows-xp,ping,Batch File,For Loop,Windows Xp,Ping,我正在批量进行一个简单的ping带宽测试,以获得以kb/s为单位的速度,在平均往返时间为123ms之后,我遇到了ms拖车的问题。批处理无法处理数字令牌中的字母,并且它没有空间来设置另一个令牌。我使用delims=研究了几种解决方案,但没有成功。我被卡住了,除了手动输入数字以获取带宽外,我什么都做不了。我运行的是Windows XP,不想使用任何东西,只想使用批处理,即不使用VBS、Java、hybred bat等。如果无法使用简单的命令行完成,我只需手动输入数字并完成。这是我的批次: @echo
delims=
研究了几种解决方案,但没有成功。我被卡住了,除了手动输入数字以获取带宽外,我什么都做不了。我运行的是Windows XP,不想使用任何东西,只想使用批处理,即不使用VBS、Java、hybred bat等。如果无法使用简单的命令行完成,我只需手动输入数字并完成。这是我的批次:
@echo off
color 0b
MODE CON:COLS=57 LINES=15
for /F "tokens=9" %%a in ('ping -n 1 -l 1024 8.8.8.8^| find "Average"') do set "A1=%%a"
echo %A1%
set /a T=%A1%
set /a varia=1000/%T%
set /a answer=%varia%
set /a varia2=%answer%
set /a answer2=%varia2%
echo.
echo Speed %answer2% Kb/s
pause
这是stackoverflow上的答案
@echo off
color 0b
MODE CON:COLS=57 LINES=15
for /f "tokens=9 delims=()" %%a in (
'ping -n 1 -l 1024 8.8.8.8^| find "Average"'
) do (for /f "tokens=9" %%b in ("%%a") do (
set num=%%b & set num=!num:%%=!
if !num! == !num! goto nc
)
)
:nc
echo !num!
set /a T=!num!
set /a varia=1000/%T%
set /a answer=%varia%
set /a varia2=%answer%
set /a answer2=%varia2%
echo.
echo Speed %answer2% Kb/s
pause
在XP中测试:它在Win8.1中工作
for /F "tokens=8 delims=ms=, " %%a in ('ping -n 1 -l 1024 8.8.8.8^| find "Average" ') do set "A1=%%a"
您试图解析的是什么?你对哪一点感兴趣?Ping不是衡量下载速度的好工具,是吗?@foxidrive它更像是一个学习批处理的项目。您帮助我使用netstat-e,这是一个更好的工具,它工作得非常完美。我试图从ping解析平均往返时间-l1024(1kb)average=276ms 1000/276=3.62kb/s需要在276之后删除ms