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, 7355 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 ..
Ähnliche Inhalte
PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

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

Frage von LindeUnimog zum Thema Outlook & Mail ...

Batch & Shell
gelöst RoboCopy Log Fehler? (14)

Frage von clragon zum Thema Batch & Shell ...

VB for Applications
gelöst VB-Script per Aufgabenplanung (2)

Frage von S4kar97 zum Thema VB for Applications ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (48)

Frage von sabines zum Thema Internet ...

Netzwerke
Wie erstelle ich ein Intranet (19)

Frage von Leonardnet zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Eintägige Netzwerkunterbrechung trotz Backupleitung (15)

Frage von iAmbricksta zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2012 R2 - Zugriff Verweigert bei jeglicher Tätigkeit (13)

Frage von DarkLevi zum Thema Windows Server ...