我试图在cmd窗口中的Windows 10计算机上运行简单的连续ping,并将时间戳和响应时间输出到csv文件中的两列。我不确定如何执行此操作,因为我对此类编码没有任何经验。任何帮助表示赞赏。
答案 0 :(得分:0)
这一切都可以用batch
语言完成,这等效于您使用cmd的请求。我整理了一个简单的脚本,将使用ping
命令和findstr
来将响应时间设置为变量。
脚本是连续的,可以使用以下设置从脚本顶部的配置中进行调整:
脚本保存文件的方式是使用>>
附加输出到file命令。 ::
中列出了所有脚本内上下文线索,可以根据需要将其从脚本中删除。您可以根据自己的需要随意编辑脚本。如果您不知道如何将此脚本转换为批处理,请复制并粘贴到记事本中,另存为.bat
。
@ECHO OFF
@SETLOCAL
::Set the address you wish to ping
SET adress=123.123.12.1
::Set the speed between pings (In seconds)
SET speed=5
::Set the file name to save as - Can include location ex (C:\Users\%username%\Desktop\file.csv)
SET filename=TP.csv
GOTO :ping
:ping
::Ping and extract time= into variable
for /F "tokens=7 delims== " %%G in ('ping -4 -n 1 %adress%^|findstr /i "time="') do set ping=%%G
echo Current ping for %adress%: %ping%
::Set Time stamp
set curTimestamp=%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%
::Create file.csv at desired location
echo %curTimestamp%, %ping% >> %filename%
::Wait for x second before next ping
PING localhost -n %speed% >NUL
goto :ping
答案 1 :(得分:-1)
@echo off
::Set the address you wish to ping
set/p host=host Address:
set logfile=Log_%host%.log
echo Target Host = %host% >%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 -l 32') 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
timeout 1 >NUL
GOTO Ping)