windows ping 带时间戳

使用方法

新建文本文件,改后缀为 .bat 编辑该文件,将下面代码拷贝进去,ctrl+s保存一下,双击文件运行
效果图

运行效果:

一秒钟ping一次目标网络,
创建ping_host.log文件保存记录,会覆盖,意思你用这个脚本运行两次ping同一个host,第二次的文件会覆盖第一次的

中止方式:

第一种ctrl+c,会问你是否中止 键入 y回车
第二种,直接关闭窗口

结果:

可以看到当前目录产生了一个.log文件,其实就是一个txt文本文件,只是后缀不一样,可以用记事本打开看文件

这是我刚才ping的记录 带时间戳的

简化版代码

@echo off
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

注解版代码

略啰嗦 不懂具体指令可以百度

::      这是注释 文件名 test.bat
@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
posted @ 2020-08-12 19:57  当浮一大白<  阅读(10209)  评论(1编辑  收藏  举报