Top-Themen

Aktuelle Themen (A bis Z)

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
Kommentar vom Moderator Biber am 09.03.2010 um 14:47:57 Uhr
Leider funktioniert das nicht so ganz.
Ich werde beantragen, diesen Leer-Satz forumsweit zu bannen.
Wenn das eine Fehlerbeschreibung von erwachsenem Windows-Anwender zu erwachsenem Windows Anwender ist - wie unterhalten sich schulpflichtige PlayStation-Zockerinnen??
GELÖST

Logdatei auswerten und bestimmten Text in Variable speichern

Frage Entwicklung

Mitglied: ForgottenRealm

ForgottenRealm (Level 1) - Jetzt verbinden

09.03.2010, aktualisiert 14:47 Uhr, 5036 Aufrufe, 4 Kommentare

Hallo


Wieder einmal habe ich ein Problem bei einer For-Schleife.

Diesmal möchte ich aus einer bestehenden Logdatei bestimmte Wörter herausfiltern und die komplette Zeile, in der dieses Wort vorkommt, als Variable speichern um diese später verwenden zu können.


Gegeben ist:

@set ERRORCODE=(0x00000002)
@set LOGFILE=%USERPROFILE%\Desktop\Test.log
@set ERRORS=%USERPROFILE%\Desktop\Errors.log

for %%i in ("%LOGFILE%") do findstr /C:"%ERRORCODE%" && echo %%i>>"%ERRORS%"


Leider funktioniert das nicht so ganz.

Wo liegt der Fehler?
Mitglied: bastla
09.03.2010 um 15:06 Uhr
Hallo ForgottenRealm!

Abgesehen davon, dass ich Bibers obigen Antrag aufs Heftigste unterstütze - hast Du es schon mal mit einer "for /f"-Schleife versucht?

Außerdem - nach "als Variable speichern" (auch wenn dies für mehrere Zeilen zumeist ohnehin nicht viel Sinn hat) sieht Dein Code nicht aus ...

... und wenn die Zeilen tatsächlich nur in eine Datei sollten, wäre die Schleife entbehrlich:
findstr /C:"%ERRORCODE%" "%LOGFILE%">"%ERRORS%"
Grüße
bastla
Bitte warten ..
Mitglied: ForgottenRealm
09.03.2010 um 15:31 Uhr
Hi

Ich habe noch etwas an der Datei gearbeitet und bin nun soweit, dass ich die ERRORS Datei erstellt bekomme.

@set ERRORCODE=^(0x00000020^)
@set LOGFILE=Test.log
@set ERRORS=Errors.log
@set NICHTKOPIERT=NichtKopiert.log

type "%LOGFILE%"|findstr /C:"%ERRORCODE%">>"%ERRORS%"

Mit Type gehts auch, wenn auch etwas länger als deine Zeile.

Nun erhalte ich eine weitere Logdatei, aus der ich in jeder Zeile die ersten 71 Zeichen entfernen möchte.

Dafür dachte ich an die nachfolgende Schleife, um jede Zeile abzuarbeiten;

for /f %%L IN (%ERRORS%) DO (
set UNFERTIG=%%L
set FERTIG=%UNFERTIG:~-71%
echo %FERTIG%>>%NICHTKOPIERT%
)

Die erzeugte Logdatei ist allerdings Fehlerhaft, denn es steht dort nur "ECHO ist eingeschaltet (ON)." drin, was darauf hindeutet, dass die Variable %%L nicht erstellt wird.

Die Ausgabe im CMD Window sagt, dass die Variable %unfertig% nur den Wert bis zum ersten Leerzeichen in jeder Zeile bekommt und somit nicht länger als 71 Zeichen ist und somit auch nicht verarbeitet werden kann.

Wenn ich die Variable %ERRORS% im ersten Teil der Schleife mit ' oder " einfasse, wird in beiden Fällen nur der Dateiname verarbeitet und nicht der Inhalt.

Wie lässt sich dies umgehen?
Bitte warten ..
Mitglied: bastla
09.03.2010 um 16:16 Uhr
Hallo ForgottenRealm!

Etwa so:
01.
@echo off & setlocal 
02.
set "ERRORCODE=(0x00000020)" 
03.
set "LOGFILE=Test.log" 
04.
set "ERRORS=Errors.log" 
05.
set "NICHTKOPIERT=NichtKopiert.log" 
06.
 
07.
del "%NICHTKOPIERT%" 2>nul 
08.
findstr /c:"%ERRORCODE%" "%LOGFILE%">"%ERRORS%" 
09.
for /f "usebackq delims=" %%i in ("%ERRORS%") do set "Zeile=%%i" & call :ProcessLine 
10.
goto :eof 
11.
 
12.
:ProcessLine 
13.
>>"%NICHTKOPIERT%" echo %Zeile:~71% 
14.
goto :eof
Wenn die Datei "Errors.log" nicht für andere Zwecke benötigt wird, ließen sich die Zeilen 8 und 9 zu
for /f "delims=" %%i in ('findstr /c:"%ERRORCODE%" "%LOGFILE%"') do set "Zeile=%%i" & call :ProcessLine
zusammenfassen ...

Grüße
bastla

P.S.:
... was darauf hindeutet, dass die Variable %%L nicht erstellt wird.
Tatsächlich werden alle Variablen erstellt, aber da keine "delayedExpansion" (Beispiele und Erklärung mehrfach hier im Forum zu finden) vorgenommen wird, kann auf die Werte der Variablen erst nach dem Abarbeiten der Schleife zugegriffen werden (wo sie in diesem Fall nix mehr nützen) ...
Bitte warten ..
Mitglied: ForgottenRealm
10.03.2010 um 09:07 Uhr
Hallo

Funktioniert einwandfrei, vielen Dank!

Ich habe noch das erste goto :eof durch eine andere Sprunganweisung ausgetauscht, da dieses Programm in ein weiteres Programm eingebunden werden soll, welches sonst ja beendet wird.


Auf die Idee mit dem Call bin ich gar nicht gekommen und bis zu dem Punkt hatte ich die Zeile auch schon mal
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bestimmter Text aus einer Textdatei umgeändert in einer Variable speichern?
gelöst Frage von spookypoofBatch & Shell4 Kommentare

Hallo, Ich wollte den Inhalt aus einer Textdatei umgeändert in einer Variable speichern. Beispiel: Textdatei.txt beinhaltet z.B. "best" (ohne ...

Batch & Shell
Powershell: Bestimmte Anzahl an Variablen von User Eingabe speichern
gelöst Frage von clubmateBatch & Shell4 Kommentare

Morgen Freunde, ich habe ein kleines Problem. Ich habe eine Do-Until-Schleife: Nun möchte ich aber, dass $AnzahlHosts soviele Werte ...

Basic
Variablen Text einfügen
gelöst Frage von TheFalconBasic14 Kommentare

Hallo zusammen, ich hab ein Makro, welches automatisch eine E-MAil verschickt nachdem man in einer Message Box einen Text ...

Batch & Shell
Text an bestimmter Stelle einfügen
gelöst Frage von noob-xBatch & Shell2 Kommentare

Hallo bin mal wieder am Basteln, komm aber nicht weiter wie stelle ich es an dass nummer 1 immer ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser7 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 3 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...