Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Wie kann ich eine bestimmte Zeile ausgeben (log)

Frage Entwicklung Batch & Shell

Mitglied: tan321

tan321 (Level 1) - Jetzt verbinden

02.09.2010, aktualisiert 18.10.2012, 6064 Aufrufe, 7 Kommentare

Hallo,
aus mehrer erstellten Log-Dateien,
sollte eine bestimmte Zeile angezeigt werden.
Ich kenne es nur von PHP mit einer Variable zu definieren,
und anzeigen zu lassen,wie geht es jedoch bei Shell.

Hier mal ein Ausschnitt aus Log:
Total Copied Skipped Mismatch FAILED Extras

Dirs : 1 : 1 : $S=0 : $M=0 : $F=0 : :
Files : 15 : 15 : 0 : 0 : 0 : :
Bytes : 6188 : 6188 : 0 : 0 : 0 : :
Times : 0:04:59 :0:04:59 : : : : :
: : : : : : :
Speed : 222 B/s
Speed : 127 MB/s
: : : : : : :
Ended : Sun Aug 01 03:24:54 2010


DIe Variable $S, $M und $F habe ich selber reingeschrieben.
Diese "Variablen" sollen angezeigt werden.ABer wie ?

Desweiteren soll wenn $S eine 1 ist,eine Text ausgeben, 0= OK oder 1=nicht OK

Wie kann ich es realisieren?

Ich danke vielmals im voraus.

Mit freundlichen Grüßen
Mitglied: Biber
02.09.2010, aktualisiert 18.10.2012
Moin tan321,

willkommen im Forum.

Auch wenn sich nach mehrmaligem Lesen der Verdacht erhärtet, es könnte sich möglichweise um eine Aufgabenstellung aus dem Kontext "Robocopy.Log-Auswertung" und somit aus dem Bereich Windows handeln...

Was hätte denn dagegen gesprochen, das verwendete System (="Windows") und das Werkzeug "Robocopy" mit anzugeben?
Dann hätte irgendjemand garantiert innerhalb von Muten zurückgeschriebe:
"Hey, benutz doch einfach mal die rattenscharfe Forumssuche hier, gib "Robocopy.log" ein und klick dich durch.
Oder klick meinetwegen auf die dort aufgelisteten Beiträge Robocopy-Logfile auswerten oder robocopy log file, da steht alles drin."


Wie gesagt, das wäre alles passiert, wenn du vernünftig gefragt hättest...

So allerdings wirst du vermutlich monatelang keine einzige brauchbare Antwort bekommen.

Grüße
Biber
Bitte warten ..
Mitglied: tan321
03.09.2010 um 13:03 Uhr
Vielen Dank für die schnelle Antwort.
Ich verwende WIndows und Robocopy.

Mein bat. Datei sieht folgendermaßen aus:
01.
@echo off & setlocal 
02.
set /a Failed=0 
03.
for /f "tokens=7" %%i in ('findstr /C:"Files :" /log.txt') do set /a Failed+=%%i 
04.
If %Failed%==0 goto :OK 
05.
echo %Failed% Fehler gefunden! 
06.
goto :eof 
07.
:OK 
08.
echo Sicherung OK 
09.
goto :eof
Jedoch erhalte ich folgende Fehlermeldung?!
01.
FINDSTR: /g wurde ignoriert 
02.
FINDSTR: /. wurde ignoriert 
03.
FINDSTR: /t wurde ignoriert 
04.
FINDSTR: /t wurde ignoriert
Woran kann es liegen?
Bitte warten ..
Mitglied: Biber
03.09.2010 um 14:58 Uhr
Moin tan321,

Woran kann es liegen?
Vermutlich an dem Schrägstrich in der Dateiangabe "/log.txt".

  • Lass bitte der Schrägstrich wenn, wenn er nur eine Datei aus dem aktuellen Verzeichnis durchsuchen soll
  • oder ersetze den "/" durch einen backslash "\", wenn es bedeuten soll, die Datei log.txt liegt auf dem Root-verzeichnis
  • oder ersetze die Angabe durch ":d:\temp\logs\log.txt", wenn die Datei im verzeichnis "d:\temp\logs" liegt.

Grüße
Biber
Bitte warten ..
Mitglied: tan321
03.09.2010 um 15:24 Uhr
Ich habe soeben die genannten Dinge ausprobiert,
dann lässt sich der DOS Fenters <1 sec öffnen und schließen.
Leider liegt das Problem woanders, und finde keine Lösung zu.

Nochmal die Logdatei:
01.
------------------------------------------------------------------------------- 
02.
ROBOCOPY :: Robust File Copy for Windows :: Version XP010 
03.
------------------------------------------------------------------------------- 
04.
 
05.
Total Copied Skipped Mismatch Failed Extras 
06.
Dirs : 2 2 0 0 1 0 
07.
Files : 2 2 0 0 1 0 
08.
Bytes : 75.32 m 75.32 m 0 0 0 0 
09.
Times : 0:00:00 0:00:00 0:00:00 0:00:00 
10.
 
11.
Speed : 560136113 Bytes/sec. 
12.
Speed : 32051.245 MegaBytes/min. 
13.
 
14.
Ended : Mon Jun 10 17:44:10 2008
Mit freundlichen Grüßen
tan321
Bitte warten ..
Mitglied: Biber
03.09.2010 um 17:00 Uhr
Moin tan321,

ich weiss jetzt nicht, in welcher IDE du diesen Effekt mit dem in weniger als 1 Sekunde schließenden DOS-Fenster generierst.
Bei mir (Win XP SP3) tritt dieses Phänomen nur auf, wenn ich am CMD-Fenster "exit" eintippe.

Du könntest noch zur Probe mal
If "%Failed%"=="0" goto :OK
--> die beiden gegeneinander geprüften Werte in Hochkomma setzen. vielleicht hilft es.

Wenn nicht, dann musst du auf einen der Spezialisten warten, die per Doppelklick vom Desktop debuggen können. Ich kann das nicht.

Grüße
Biber
Bitte warten ..
Mitglied: pieh-ejdsch
03.09.2010 um 19:53 Uhr
moin tan321,

Zeile 03 und Zeile 04 liessen sich vllt so verkürzen
(for /f "tokens=7" %%i in ('findstr /C:"Files :" log.txt') do set /a Failed+=%%i)||goto :OK
oder so wie Biber Schraubte...

desweiteren hast Du Dein Batch nur gesagt das er sich sofort nach der AnzeigeMeldung wieder Verabschieden soll, wenn Du den Batch nicht von der CMD-Line gestartet hast.
für eventuelle lesbarkeit von UltraKurznachrichten haben sich folgende AbschlussZeilen bewährt:
pause&goto :eof 
oder ohne Kommentar 
pause>nul&goto :eof 
oder mit Kommentar 
echo Drueck mich und ich Verschwinde!&pause>nul&goto :eof 
oder SelbstVerschwindend 
ping localhost -n 5 >nul&goto :eof
@Biber einen selbverschwindenden Debugger hatte ich auch noch nicht!

Gruß Phil
Bitte warten ..
Mitglied: tan321
06.09.2010 um 22:51 Uhr
Vielen Dank für eure Hilfen.
Der Script funktioniert nun einwandfrei.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
VB for Applications
gelöst Vbscript bestimmte Zeile ungeachtet der Nummerierung löschen (4)

Frage von aletri zum Thema VB for Applications ...

Netzwerke
VPN nur für bestimmte Port(s) verwenden unter Win10 (1)

Frage von Bluebrain zum Thema Netzwerke ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...