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

VB Script Robocopy.log auslesen und bestimmte zeilen in eine andere Textdatei schreiben

Frage Entwicklung

Mitglied: 0cool

0cool (Level 2) - Jetzt verbinden

28.11.2010 um 17:21 Uhr, 7324 Aufrufe, 10 Kommentare

Hey Leute,

nach mehreren Tagen suchen im Netz, wende ich mich an euch.

Ich muss mit VB Script aus einer Log Datei, jeder Zeile in der das Wort Fehler vorkommt, an eine bestehende Textdatei anhängen. Wie bekomme ich das hin?

Informationen:
- Es ist nicht bekannt in welchen Zeile das Wort Fehler ist
- Auch ist es nicht bekannt wie oft das Wort Fehler in dem Log vorkommt

Also soll immer der gesammte Log Zeile für Zeile durchsucht werden.

Leider habe ich noch kein vernüftigen Ansatzpunkt für dieses Vorhaben.

Danke für eure Hilfe!

Gruß

0cool
Mitglied: 60730
28.11.2010 um 17:45 Uhr
moin,

vbs würde uch da nicht nehmen, außer es handelt sich um riesige logfiles.

01.
set "input"=="c:\test\logfile.txt" 
02.
set "output"=="c:\test\errorlogfile.txt" 
03.
findstr /i "fehler" %input% && goto log ||goto end 
04.
:log 
05.
echo ___________>>%output% 
06.
echo %date%>>%output% 
07.
echo ___________>>%output% 
08.
findstr /i "fehler" %input%>>%output% 
09.
echo bmail oder blat? 
10.
 
11.
:end 
12.
notepad %output%
Gruß


edit achso - für Robocopy?...
dann zumindestens ein Datum ins neue Log schreiben...
Bitte warten ..
Mitglied: 0cool
28.11.2010 um 17:55 Uhr
Hey,

erst mal danke für deine Antwort.

Leider brauche ich VB Script, da das auslesen und schreiben nur eine function von einem vb backup script ist. der rest des Scriptes hab ich hinbekommen, es happert nur noch an dieser einen Geschichte.


Gruß

0cool
Bitte warten ..
Mitglied: bastla
28.11.2010 um 18:30 Uhr
Hallo 0cool!

Gänzlich ungetestet etwa so:
01.
Ein = "D:\Dein Log.txt" 
02.
Aus = "D:\Deine Textdatei.txt" 
03.
Suche = "Fehler" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
For Each Zeile In Split(fso.OpenTextFile(Ein).ReadAll, vbCrLf) 
07.
    If InStr(Zeile, Suche) > 0 Then Ausgabe = Ausgabe & vbCrLf & Zeile 
08.
Next 
09.
fso.OpenTextFile(Aus, 8, True).Write Ausgabe
Grüße
bastla
[Edit] Code "entslangt" [/Edit]
Bitte warten ..
Mitglied: 0cool
28.11.2010 um 19:36 Uhr
Hey bastla,

vielen dank ich werds morgen austesten.


Gruß

Thorsten
Bitte warten ..
Mitglied: 0cool
29.11.2010 um 11:04 Uhr
Hey bastla,

ich hab das dein Script jetzt getestet, leider schreibt es den gesamten Text der log.txt in die Datei Textdatei.txt, nicht nur die Zeilen in denen das Wort Fehler auftritt.

Kannst du mir weiterhelfen?

Gruß

0cool
Bitte warten ..
Mitglied: Biber
29.11.2010 um 13:57 Uhr
Moin 0cool,

würde es etwas ändern, wenn du folgende Slangausdrücke durch eine variierte Schreibweise ersetzt?

a) statt "Set fso = CreateObejct" in Zeile 05 mal probieren "Set fso = CreateObject..."
b) statt dem Split-Trenner vbCrCLf in Zeile 06 mal antesten mit vbCrLf

Is' jezz' nur so 'ne Idee...

Grüße
Biber
Bitte warten ..
Mitglied: bastla
29.11.2010 um 14:14 Uhr
@Biber
THX - ich korrigier's dann auch mal oben ...

BTW: So schaut (hoffentlich nicht allzu oft) "gänzlich ungetestet" aus ...

Grüße
bastla
Bitte warten ..
Mitglied: 0cool
30.11.2010 um 11:00 Uhr
Hey Leute,

vielen dank!

Das Script funktioniert auch als seperates Script. Wenn ich es zu meinen Script hinzufüge, liest er zwar die Datei robocopy.log aus und schreib die Zeilen in denen das Wort Fehler vorkommt in eine zweite Datei, doch leider wird die zweiter Datei in der Kodierung UCS-2 Little Endian gespeichert.

Wenn ich die zweite Datei aufmache, dann seh ich nur Schriftzeichen (Chinesich usw.).
Wenn ich die zweite Datei mit Word öffne, dann kann ich die Kodierung in ANSI ändern, damit ist die Datei wieder lesbar.

Kann ich in dem Script bestimmen mit welcher Kodierung die zweite Datei abgespeichert wird?

Die zweite Datei ist auch eine .log Datei.
Bitte warten ..
Mitglied: bastla
30.11.2010 um 12:07 Uhr
Hallo 0cool!

Interessantes Phänomen ...

Versuch es mit folgender Zeile 9:
fso.OpenTextFile(Aus, 8, True, False).Write Ausgabe
Grüße
bastla
Bitte warten ..
Mitglied: 0cool
30.11.2010 um 14:43 Uhr
Danke bastla, aber ich habe es jetzt anders gelöst.

ich habe die error.log datei über ein objekt geladen.

01.
set objstream = objfs.CreateObject ("Pfad\error.log", ForAppending, true)
Dieses Objekt lade ich jetzt nachdem die Fehler in die error.log geschrieben wurden und hänge dann noch den Rückgabewert von Robocopy an die Datei error.log an.

Damit funktioniert es.

Vielen Dank nochmal für eure Hilfe.


Gruß

0cool
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Outlook & Mail
gelöst Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook) (4)

Frage von LindeUnimog zum Thema Outlook & Mail ...

VB for Applications
gelöst VB Script rekursiv statt nur ein Ordner (4)

Frage von Saschaaaaa zum Thema VB for Applications ...

VB for Applications
gelöst VB Script nach gefundenem Wort die nächsten 4 Zeichen ersetzten (2)

Frage von deutsch73 zum Thema VB for Applications ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...