我从这个站点获得了以下大部分批处理文件,并根据我的需要对其进行了修改:
@echo off
set/p host=host Address:
set logfile=Log_%host%.log
set csfile=pings_%host%.csv
echo Target Host = %host% >%logfile%
netsh interface show interface >>%logfile%
nslookup myip.opendns.com resolver1.opendns.com >>%logfile%
for /f "tokens=*" %%A in ('ping %host% -n 1 ') do (echo %%A>>%logfile% && GOTO Ping)
:Ping
for /f "tokens=* skip=2" %%A in ('ping %host% -n 1 ') do (
echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A>>%logfile%
echo %date%,%time:~0,2%:%time:~3,2%:%time:~6,2%,%%A>>%csfile%
echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A
timeout 1 >NUL
GOTO Ping).log文件的输出正是我想要的。csv文件输出如下所示:
02/16/2016 Tue, 8:02:03,Reply from 173.194.115.33: bytes=32 time=16ms TTL=56我至少希望看到这样的情况:
02/16/2016 Tue, 8:02:03,Reply from 173.194.115.33:, bytes=32, time=16ms, TTL=56最理想的是,我希望csv看起来像这样:
Date,Time,IP,Bytes,Time,TTL
02/16/2016 Tue,8:02:03,173.194.115.33,32,16ms,56
02/16/2016 Tue,8:02:04,173.194.115.33,32,17ms,56
...如果可能的话,我想远离PowerShell。
谢谢你,乔
发布于 2016-02-16 15:19:29
您可以使用FOR循环来解析您所关心的值。
FOR /F "usebackq tokens=1-10 delims==:< " %%A IN (`ping google.com -n 1`) DO (
REM Only process the response line.
IF "%%A"=="Reply" (
ECHO %%C,%%E,%%G,%%I
)
)此片段将以下数据转换为CSV格式:
IP,字节,时间,TTL
样本输出:
74.125.138.138,32,11 43,43
您应该能够很容易地将其适应到您的脚本中。
https://stackoverflow.com/questions/35434792
复制相似问题