Autor Beitrag
avoid
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Mi 18.06.14 20:22 
Ich hab mir mit Hilfe einiger Forumsbeiträge eine kleine Batch Datei erstellt.
Leider verstehe ich davon nicht genug um zu verstehen warum ich in die Textdatei sowohl die OK als auch die Fehler geschrieben bekomme aber in der Liveanzeige sehe ich nur die OK Meldungen.
Dort hätte ich auch gerne die Fehler gesehen.

Liegt das evtl. daran das die for schleife nur bei OK verlassen wird?

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
@echo off
set ip=192.168.178.1
set logdatei=c:\test.txt

:start
 set Erfolg=Fehler
 for /f "tokens=7 delims==< " %%i in ('ping -n 1 %IP%^|findstr "TTL"') do set "Zeit= - %%i" && set "Erfolg=OK"
 >>%logdatei% echo %IP% - %date%-%time% - %Erfolg%%Zeit%
 cls
 @echo Ping zur IP %IP% gestartet.
 @echo Aufzeichnung nach %logdatei% aktiv.
 @echo Zum beenden Strg+C verwenden.
 @echo -------------------------------------------
 @echo %date%-%time% - %Erfolg%%Zeit%
 @echo:
goto start


evtl. hat jemand ne Idee.
schon mal danke.

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
avoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Do 19.06.14 11:01 
mir ist gerade noch etwas eingefallen.

lässt sich evtl. der Dateiname so ändern das dass Datum mit drin steht?
damit um Mitternacht automatisch eine neue Datei erstellt wird?

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4795
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 19.06.14 11:41 
Zu deiner letzten Frage:
ausblenden Quelltext
1:
2:
3:
4:
5:
set logdatei=c:\test
set logextension=.txt

// weiter unten
>>%logdatei%_%date%%logextension%

Für diesen Beitrag haben gedankt: avoid
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 19.06.14 12:11 
Moin!

Wenn ich was in max. 5 min. nicht in cmd nicht hinkriege, nehme ich normalerweise Perl... :zwinker: Warum sich mit MS-Syntax rumquälen... :?

Aber ich verstehe dein Problem nicht, bei mir funktioniert´s:
Screenshot
(Das kann aber auch daran liegen, dass dieses Subnet bei mir nicht erreichbar ist. ;) Hab jetzt allerdings auch keine Zeit/Lust zu suchen... hab eh nicht verstanden, was das werden soll?)

Ich habe deine Syntax auch etwas überarbeitet (so hätte ich das nicht geschrieben):
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
@echo off
set ip=192.168.178.1
set logdatei=c:\test.log

:start
 set Erfolg=Fehler
 for /f "tokens=7 delims==< " %%i in ('ping -n 1 %IP%^|findstr "TTL"') do set Zeit=" - %%i" && set Erfolg=OK
 echo %IP% - %date%-%time% - %Erfolg%%Zeit% >>%logdatei%
 cls
 echo Ping zur IP %IP% gestartet.
 echo Aufzeichnung nach %logdatei% aktiv.
 echo Zum beenden Strg+C verwenden.
 echo -------------------------------------------
 echo %date%-%time% - %Erfolg%%Zeit%
 echo:
goto start


Und noch zu deinen Fragen:
user profile iconavoid hat folgendes geschrieben Zum zitierten Posting springen:
Liegt das evtl. daran das die for schleife nur bei OK verlassen wird?
Die For-Schleife wird bei jedem Aufruf der Kette ping|findstr verlassen, da sie die Ausgabe analysieren soll (ist etwas gewöhnungsbedürftig).

Und noch zum Verständnis: IMHO sind deine set-Statements im do-Zweig syntaktisch falsch (s.o.). Weiterhin bezieht sich die Prüfung von "&&" auf den RC der letzten Anweisung: also das 1. set vor dem 2. set: wenn das OK war, wird das zweite set ausgeführt. :idea:

cu
Narses
Einloggen, um Attachments anzusehen!
_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: avoid
avoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Do 19.06.14 17:47 
danke für eure hinweise und Infos.
so klappt es besser, und jetzt kann ich auch nach vollziehen was da passiert.

was die frage an geht, wozu ich so etwas brauche ...
hab einen Windows 8.1 Rechner der auf der onboard Netzwerkkarte immer mal wieder den betrieb einstellt.
ich will mit der Batchdatei die nächsten tage mal mit loggen wann die Verbindung verschwindet
und dann mit den Systemereignissen vergleichen.

Am Treiber liegt's nicht und an der Hardware auch nicht weil eine gesteckte Karte diese Probleme nicht macht.
mal sehen ob das nur zu bestimmten Zeiten vor kommt.

danke auf jeden fall.


----nachtrag----

Narses in dem von dir geposteten Code ist aber auch ein Syntaxfehler. ;)

Richtig: "Zeit= - %%i"
Falsch: Zeit=" - %%i"

wenn man das " hinter das = setzt wie bei dir,
bekommt man in anzeige und log ein " hinter den Inhalt von %Erfolg%
und auch hinter den Inhalt von %Zeit%.
das ist optisch eher unschön.

ich hab es jetzt so:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
@echo off
set ip=192.168.178.1
set logdatei=c:\test
set logextension=.txt

:start
 set Erfolg=Fehler
 for /f "tokens=7 delims==< " %%i in ('ping -n 1 %IP%^|findstr "TTL"') do set "Zeit= - %%i" && set Erfolg=OK
 echo %IP% - %date%-%time% - %Erfolg%%Zeit% >>%logdatei%_%date%%logextension%
 cls
 echo Ping zur IP %IP% gestartet.
 echo Aufzeichnung nach %logdatei% aktiv.
 echo Zum beenden Strg+C verwenden.
 echo -------------------------------------------
 echo %date%-%time% - %Erfolg%%Zeit%
 echo:
 IF "%Erfolg%" == "Fehler" (
  echo 
 )
goto start


hab auch noch nen beep bei Fehler rein gemacht.
hinter dem letzten echo muss das ASCII Zeichen für BEL sitzen (ALT + 7), das macht dann den denn Beep.

Gruß.

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke