概要
如何让ping出的信息带上时间戳
例如:
新建文本文件,将下方代码复制进去,保存后修改后缀为.bat.双击程序运行
提示:简化版代码如下(直接复制不需要修改)
set /p host=host:
set logfile=ping_%host%.log
echo Target Host=%host% > %logfile%
:loop
for /f "tokens=* skip=2" %%A in ('ping %host% -n 1') do (
echo %date:~0,-3% %time:~0,-3% %%A>>%logfile%
echo %date:~0,-3% %time:~0,-3% %%A
timeout /t 1 /nobreak>nul
goto loop
)
pause>nul
提示:注解版代码(直接复制不需要修改)
@echo off
:: 关闭回显
set /p host=myhost:
:: 这是备注/p效果是 需要用户输入host,即你要ping的地址
:: 设置字符串变量 =后:前为提示
set logfile=ping_%host%.log
:: 设置文件名 要重用set设置的变量host 需要两边包裹%
echo Target Host=%host% > %logfile%
:: echo 输出的字符串 >到 输入的对象
:: >file.txt 输出字符串到文件;没有> 默认输出到屏幕; >nul 输出到空的对象,指令操作的提示语句不会显示
:: 增强for循环
:: tokens 选择一行中的分割好的部分 *剩余全部
:: skip 跳过开头几行
:: %date:~0,-3% 日期字符串从第一个到倒数第三个
:: >>a.txt 追加到a.txt里
:: >a.txt 无创建a.txt,有清空a.txt
:: echo str 输出字符串
:: echo str >>filename 输出字符串到文件
:: timeout /t waittime /nobreak>nul 等待时间waittime 期间无法停止 >nul 意思不要打印到命令窗口 不显示
:: ":loop" "goto loop" 循环
:: pause>nul 按任意键继续,不显示提示
:loop
for /f "tokens=* skip=2" %%A in ('ping %host% -n 1') do (
echo %date:~0,-3% %time:~0,-3% %%A>>%logfile%
echo %date:~0,-3% %time:~0,-3% %%A
timeout /t 1 /nobreak>nul
goto loop
)
pause>nul
运行效果
一秒钟ping一次目标网络,会自动创建文件保存记录,注意同一个脚本ping同一个host,第二次记录会覆盖第一次的
终止方式
1、ctrl+c,输入Y 回车
2、关闭窗口