Resutaat van een ping wegschrijven naar bestand

Status
Niet open voor verdere reacties.

Withaar

Verenigingslid
Lid geworden
8 apr 2001
Berichten
3.551
Ik gebruik een batch programma op zo'n 30 servers te pingen op DNS en IP hier een klein stukje van de code;
Code:
@echo on
REM SRA0003
echo.
echo ---> testen SRA0003 op DNS (Eindhoven)
ping SRA0003
echo.
echo ---> testen SRA0003 op IP
ping 10.71.0.69
echo.
echo -------------------------------------------------------------------------
Dit gaat prima, ik zou echter graag de resultaten weg laten schrijven in een file.
Bij voorkeur in een file met datum en tijd er in verwerkt.

Hoe pak ik dat aan?
 
Laatst bewerkt:
Ben zelf al een stukje verder;

@echo on
REM SRA0003
echo.
echo. >> file.txt
echo ---> testen SRA0003 op DNS (Eindhoven)
echo ---> testen SRA0003 op DNS (Eindhoven) >> file.txt
ping SRA0003
ping SRA0003 >> file.txt
echo.
echo. >> file.txt
echo ---> testen SRA0003 op IP
echo ---> testen SRA0003 op IP >> file.txt
ping 10.71.0.69
ping 10.71.0.69 >> file.txt
echo.
echo. >> file.txt
echo -------------------------------------------------------------------------
echo ------------------------------------------------------------------------- >> file.txt

Op het scherm en schrijft het weg in de file 'file.txt'

Nu zou de naam van de file dus nog automatisch de datum en tijd van het draaimoment moeten krijgen.
N.b ik ben me er van bewust dat wat op het scherm komt te staan af kan wijken van wat er in de file komt, het zijn tenslotte 4 losse ping commando's, maar dat maakt me niet zo veel uit.
 
Laatst bewerkt:
Nou, het laatste stukje puzzel heb ik ook, voor wie interesse heeft;

for /f "tokens=1,2" %%u in ('date /t') do set d=%%v
for /f "tokens=1" %%u in ('time /t') do set t=%%u
if "%t:~1,1%"==":" set t=0%t%
set timestr=%d:~6,4%%d:~3,2%%d:~0,2%-%t:~0,2%%t:~3,2%
rename tijdelijk.txt %timestr%.txt

Totaal wordt dus:

@echo off
REM SRA0003
echo.
echo. >> tijdelijk.txt
echo ---> testen SRA0003 op DNS (Eindhoven)
echo ---> testen SRA0003 op DNS (Eindhoven) >> tijdelijk.txt
ping SRA0003
ping SRA0003 >> tijdelijk.txt
echo.
echo. >> tijdelijk.txt
echo ---> testen SRA0003 op IP
echo ---> testen SRA0003 op IP >> tijdelijk.txt
ping 10.71.0.69
ping 10.71.0.69 >> tijdelijk.txt
echo.
echo. >> tijdelijk.txt
echo -------------------------------------------------------------------------
echo ------------------------------------------------------------------------- >> tijdelijk.txt

for /f "tokens=1,2" %%u in ('date /t') do set d=%%v
for /f "tokens=1" %%u in ('time /t') do set t=%%u
if "%t:~1,1%"==":" set t=0%t%
set timestr=%d:~6,4%%d:~3,2%%d:~0,2%-%t:~0,2%%t:~3,2%
rename tijdelijk.txt %timestr%.txt


P.s. ik heb test.txt maar even in een andere naam veranderd; tijdelijk.txt.
Dit leverd een file op met de naam yyyymmdd-uumm.txt
 
Nu heb ik een mooie log file, per server gaat het me echter eigenlijk maar om één lijn;
attachment.php


Is het mogelijk alleen deze regel uit het ping commando op te staan in de tijdelijk.txt file?
Of kan je aan het ping commando parameters mee geven om alleen deze output te krijgen?
 

Bijlagen

  • Save-lost.JPG
    Save-lost.JPG
    26,9 KB · Weergaven: 746
Laatst bewerkt:
Gebruik find.
Dus voeg toe aan je batch-file (bedankt voor je date /t en time /t, die kende ik nog niet!) :)

type tijdelijk.txt | find "Packets: " > file.2.txt

NB: Tussen tijdelijk.txt en find staat een pipeline-teken.

Eventueel weer een tijd & datum toevoegen, maar je weet al hoe je dat kunt doen.
date /t >> file2.txt
time /t >> file2.txt

Succes,

Tijs.
 
Laatst bewerkt:
Perfect!!!

File is nu:
Code:
@echo off
del tijdelijk.txt
echo SRA003
echo Testen SRA0003 op DNS (Eindhoven) >> tijdelijk.txt
echo Testen SRA0003 op DNS (Eindhoven)
ping SRA0003 | find "Packets: " >> tijdelijk.txt
ping SRA0003
echo Testen SRA0003 op IP >> tijdelijk.txt
echo Testen SRA0003 op IP
ping 10.71.0.69  | find "Packets: " >> tijdelijk.txt
ping 10.71.0.69
echo --------------------------------------------------------- >> tijdelijk.txt
...
... 30 servers ...
...
echo ---------------------------------------------------------
echo SRA9004 (Test Centraal)
echo Testen SRA9004.xxx.xxx.NL (Test Centraal) op DNS >> tijdelijk.txt
echo Testen SRA9004.xxx.xxx.NL (Test Centraal) op DNS
ping SRA9004.xxx.xxx.NL | find "Packets: " >> tijdelijk.txt
ping SRA9004.xxx.xxx.NL
echo Testen SRA9004 op IP >> tijdelijk.txt
echo Testen SRA9004 op IP
ping 10.140.16.104 | find "Packets: " >> tijdelijk.txt
ping 10.140.16.104
echo --------------------------------------------------------- >> tijdelijk.txt
echo ---------------------------------------------------------
for /f "tokens=1,2" %%u in ('date /t') do set d=%%v
for /f "tokens=1" %%u in ('time /t') do set t=%%u
if "%t:~1,1%"==":" set t=0%t%
set timestr=%d:~6,4%%d:~3,2%%d:~0,2%-%t:~0,2%%t:~3,2%
rename tijdelijk.txt %timestr%.txt

Op scherm krijg je 'netjes' alles te zien en de output file ziet er zo uit. :D :thumb:
attachment.php


I
images
Dos!
 

Bijlagen

  • Output.JPG
    Output.JPG
    32,1 KB · Weergaven: 617
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan