Avatar billede upsmann Nybegynder
06. februar 2006 - 09:08 Der er 11 kommentarer

Ping med dato og klokke

Hej,

Jeg søger en mulighed for at lave en ping test der logger i en fil med:

[dato] - [kl.] - [ping test]

Jeg har pt. forsøgt mig med følgende:

echo [%date%] - [%time%] ping 192.168.1.1 -n 1 >> "c:\pingtest\%date%.txt
echo [%date%] - [%time%] ping 192.168.1.1 -t >> "c:\pingtest\%date%.txt

Ovenstående har jeg dog ikke kunne få til at fungere efter hændsigten.
Jeg har pt så lavet:

echo [%date%] - [%time%]
ping 192.168.1.1 -n 1 >> "c:\pingtest\%date%.txt

Dette er dog en skidt løsning, da hver log på hver ping kommer til at se således ud:

Svar fra 192.168.1.1: byte=32 tid<1ms TTL=255

Ping-statistikker for 192.168.1.1:
    Pakker: Sendt = 4, modtaget = 4, tabt = 0 (0% tab),
Beregnet tid for rundtur i millisekunder:
    Minimum = 0ms, Maksimum = 0ms, Gennemsnitlig = 0ms


Ovenstående gør at logfilen bliver enorm stor på kort tid, grundet alle de data.

Her ville jeg gerne hvis der var muligt for at få det lavet ala:

Ping 192.168.1.1 -t

Svar fra 192.168.1.1: byte=32 tid<1ms TTL=255
Svar fra 192.168.1.1: byte=32 tid<1ms TTL=255
Svar fra 192.168.1.1: byte=32 tid<1ms TTL=255
Svar fra 192.168.1.1: byte=32 tid<1ms TTL=255

Således at det hele kommer på 1 linje:

[dato] - [ kl.] -[Svar fra 192.168.1.1: byte=32 tid<1ms TTL=255]
[dato] - [ kl.] -[Svar fra 192.168.1.1: byte=32 tid<1ms TTL=255]
[dato] - [ kl.] -[Svar fra 192.168.1.1: byte=32 tid<1ms TTL=255]
[dato] - [ kl.] -[Svar fra 192.168.1.1: byte=32 tid<1ms TTL=255]

Men jeg har ikke kunne få det til at fungere således, så håber der er hjælp at hente her? :)
Avatar billede upsmann Nybegynder
06. februar 2006 - 09:10 #1
endligt er det jeg søger en mulighed for at lave 2 commands i 1 linje.

således at en Echo skriver [date][kl.] her skal jeg så have "stoppet og startet" en ny command i samme linje der starter ping.

Har prøvet med:

echo [%date%] - [%time%]; ping 192.168.1.1 -n 1 >> "c:\pingtest\%date%.txt"
echo [%date%] - [%time%] | ping 192.168.1.1 -n 1 >> "c:\pingtest\%date%.txt"

Men ingen af de ovennævte giver mig det ønskede resultat.
Avatar billede morhan Novice
06. februar 2006 - 10:06 #2
gælder for >= win2k

set dato=[%date%] - [%time%]

for /f "tokens=* usebackq delims==" %%i in (`ping 192.168.1.1 -n 1`) do (
    echo %dato% %%i | findstr "Reply" >> log.txt
)
Avatar billede morhan Novice
06. februar 2006 - 10:08 #3
"Reply" skal selvfølgelig lige oversættes til din danske ping
Avatar billede upsmann Nybegynder
06. februar 2006 - 10:39 #4
oki, lækkert! - men jeg er ikke helt med i "reply" - er det den ip jeg pinger eller?
Avatar billede morhan Novice
06. februar 2006 - 10:53 #5
findstr "Reply"

outputtet fra ping bliver kørt gennem findstr
kun de linjer hvor "Reply" indgår bliver sendt videre til log.txt
Så erstat Reply med Svar
Avatar billede upsmann Nybegynder
06. februar 2006 - 11:37 #6
oki tak, prøver jeg :D
Avatar billede upsmann Nybegynder
06. februar 2006 - 11:43 #7
ok, det da smart! - men hvis jeg nu ønsker at ændre IP til eks. 192.168.203.250 - er der så andet jeg skal tage høje for?

Når jeg prøver, får jeg nemlig en "den angivene fil blev ikke fundet".

Og har prøvet at ændre "reply" til "anmodning" - forså logger den kun når der ikke er forbindelse igennem, på den måde spare jeg også en masse logning, og får kun når den er nede, så det da smart :D

Tak for det, og husk lige at smide et svar :)
Avatar billede upsmann Nybegynder
06. februar 2006 - 13:59 #8
Nu har jeg prøvet at leje lidt med det..
Jeg kan se at det er mig muligt at ændre ip m.m.

Men når jeg prøver at ændre ip til 3 kraraktere til eks. .101. så går det galt!

Eks. 192.168.203.1 kan den ikke, men 192.168.99.1 kan den godt?
Så der må være noget yderligere jeg skal rette, men jeg forstå ikke lige så meget det kode du har smidt til mig :) - og har prøvet at lave en for /? - og dahm der kommer meget tekst som jeg slet ikke fatter :/ hehe.


ECHO OFF

set ping1=ping 192.168.98.1 -n 1
set ping1ip= [192.168.98.1]


:start

set dato=[%date%] - [%time%]
for /f "tokens=* usebackq delims==" %%i in (`%ping1%`) do (
    echo %dato% %%i %ping1ip% | findstr "Anmodning" >> %ping1ip%.txt
)

goto start
Avatar billede morhan Novice
07. februar 2006 - 08:40 #9
hvordan går det galt?
Avatar billede upsmann Nybegynder
21. februar 2006 - 08:39 #10
Når jeg eks. har det "lokalt" på en windows 2003 server og skal pinge eks. en 192.168.3.200 - så får jeg en fejl hvor den skriver:

"The system cannont find the file specified" i dos promten. og den køre bare linje for linje med den teskt!

Samme kan ske når jeg prøver det på en XP pro, her skriver den "den angivne fil blev ikke fundet".

suk! - og mens jeg skriver det her, ser jeg endlig du skriver "\gælder for >= win2k\"
Vil det sige at jeg ikke kan bruge det på hverken win3 eller xp?

Men på win XP - fungere det når jeg pinger "ud af huset" eller en ip som ikke har noget med eget netværk at gøre, men såsnart jeg prøver noget i samme netværk så fungere det ikke, og den fejl kommer.

Er der nogen måde at kunne få det til at fungere på windows 2003 ? :)
Avatar billede upsmann Nybegynder
30. april 2008 - 16:46 #11
Glemte vist alt om point her! - kan du ikke smide et svar morhan så du kan få point! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester