增强脚本ping批处理

时间:2017-06-28 13:17:33

标签: batch-file logging ping

我制作了一个用于测试公司本地网络的脚本。它有效,但不是我想要的。

如果确定另一个ping测试时间(> = 30ms),则执行1次ping操作。所以它在我的循环中执行2次ping。

如果只有> = 30ms,如果nok log。

,我想要1 ping

如何增强此脚本?

set /p IP="Saisir une IP : "
:loop
ping.exe -n 1 %IP% | find "TTL" > NUL
if %errorlevel% == 0 for /f "tokens=7 delims==+<+ " %%i in ('ping.exe -n 1 %IP% ^| findstr /i /c:"temps"') do if %IP% GEQ 30 echo "%date% %time:~,8% ms=%%i" >> log_%IP%.txt
if %errorlevel% == 1 echo "%date% %time:~,8% Ne repond pas" >> log_%IP%.txt
timeout /t 1 > NUL
goto loop

由于

4 个答案:

答案 0 :(得分:0)

Essayeça:

@echo off
set /p IP="Saisir une IP : "
:loop
for /f "tokens=6 delims==ms" %%a in ('ping.exe -n 1 %IP% ^| find "TTL"') do if %%a GEQ 30 echo "%date% %time:~,8% ms=%%a"
timeout /t 1 > NUL
goto:loop

答案 1 :(得分:0)

Salut,merci de ton aide maismalheureusementçanemarche pas。

Si Ping&gt; 30ms il fautqueçalog,ex:

Test Ping en cours vers 8.8.8.8 
Commencer le 29/06/2017, 16:02:26 

=============================== 
= NE PAS FERMER CETTE FENETRE = 
=============================== 

"29/06/2017 16:02:27 ms=70" 
"29/06/2017 16:02:28 ms=94" 

Et si ping KO,例如:

Test Ping en cours vers 192.192.192.192 
Commencer le 29/06/2017, 16:05:58 

=============================== 
= NE PAS FERMER CETTE FENETRE = 
=============================== 

"29/06/2017 16:06:02 Ne repond pas" 
"29/06/2017 16:06:06 Ne repond pas" 

Si ping OK al rien dans le log

答案 2 :(得分:0)

致@Banee Ishaque K

当然我可以,这里是整个剧本

@echo off
set /p IP="Type an IP : "
cls
(echo Test Ping in progress to %IP%
echo Start at %date%, %time:~,8%
echo.
echo ============================
echo = DON T CLOSE THIS WINDOWS =
echo ============================
echo.) >> log_%IP%.txt | type log_%IP%.txt
:loop
ping.exe -n 1 %IP% | find "TTL" > NUL
if %errorlevel% == 0 for /f "tokens=7 delims==+<+ " %%i in ('ping.exe -n 1 %IP% ^| findstr /i /c:"time"') do if %IP% GEQ 30 echo "%date% %time:~,8% ms=%%i" >> log_%IP%.txt
if %errorlevel% == 1 echo "%date% %time:~,8% Not working" >> log_%IP%.txt
timeout /t 1 > NUL
goto loop

答案 3 :(得分:0)

感谢所有人的贡献,我回应了自己。

这里是完整的脚本:

@echo off
:: Ce script permet de tester le réseau local d'un client

:: Déclaration de la variable IP, à saisir en exécutant le script
set /p IP="Saisir une IP : "
set /p MS="Valeur de test (en ms) : "

cls

:: Bloque de commentaire dans un fichier log et affichage à l'écran
(echo Test Ping en cours vers %IP%
echo Commencer le %date%, %time:~,8%
echo.
echo ===============================
echo = NE PAS FERMER CETTE FENETRE =
echo ===============================
echo.) >> log_%IP%.txt | type log_%IP%.txt

:: Boucle infini : commande ping avec 1 paquet
:: Si erreur le script log
:: Si pas d'erreur le script log les résultats supérieur ou égal à la valeur de test en ms
:: La boucle se relance toutes les secondes
:loop
for /f "tokens=1,7 delims==+<+ " %%a in ('ping.exe -n 1 %IP% ^| findstr /i /c:"temps"^|^| echo "Ne Repond Pas"') do (
 if "%%b" == "" (
  echo "%date% %time:~,8% Ne repond pas" >> log_%IP%.txt
 ) ELSE (
  if %%b GEQ %MS% (
   echo "%date% %time:~,8% ms=%%b" >> log_%IP%.txt
  )
 )
)
timeout /t 1 > NUL
goto loop