1. 程式人生 > 實用技巧 >windows win10 ping 帶時間戳

windows win10 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:
::輸入host,即你要ping的地址
set logfile=ping_%host%.log
::設定檔名 要重用set設定的變數 需要兩邊包裹%
echo Target Host=%host% > %logfile%
:: echo 輸出命令 > 指定輸入的物件
:: 輸出 Target Host=你輸入的host值 到 檔案
::沒有 > 檔名 ,預設輸出到螢幕; >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