In einer txt.datei einen bestimmten Bereich auslesen
Hallo zusammen,
ich habe ein Problem und zwar bekomme ich jeden Tag 2 Logdateien. Diese sind aber locker 30 - 50 Seiten stark und das kostet mich jeden Tag viel Zeit diese Logs zu kontrollieren.
In dieser Kontrolle such ich einfach nach den Dateiabschnnitten wo ein Kopiervorgang nicht funktioniert hat.
Dieses wird mit dem Wort "failed" angezeigt.
Ich bekomme zusätzlich eine Tabelle (in der txt.datei) mit der Auflistung was bei jedem Kopiervorgang gemacht wurde.
Sieht so aus=>
Wie man sieht sind hier "0 Files mit Failed".
Nun ist meine Frage gibt es eine Möglichkeit das in eine Batch.datei oder eine andere Art von Datei zu packen, dass diese mir dann nur diese Tabellen oder alles was unter dem Wort "FAILED" steht anzeigt?
Da ich aber, ich würde mal sagen, nur geringe Programmierfähigkeiten besitzte und diese dann nur in C++, hänge ich nun einwenig in der Luft.
Wäre schön wenn mir jemand einen Lösungsanssatz nennen könnte.....
schonmal Danke im Vorraus für eure Hilfe.
Gruss Stephan
ich habe ein Problem und zwar bekomme ich jeden Tag 2 Logdateien. Diese sind aber locker 30 - 50 Seiten stark und das kostet mich jeden Tag viel Zeit diese Logs zu kontrollieren.
In dieser Kontrolle such ich einfach nach den Dateiabschnnitten wo ein Kopiervorgang nicht funktioniert hat.
Dieses wird mit dem Wort "failed" angezeigt.
Ich bekomme zusätzlich eine Tabelle (in der txt.datei) mit der Auflistung was bei jedem Kopiervorgang gemacht wurde.
Sieht so aus=>
Wie man sieht sind hier "0 Files mit Failed".
Nun ist meine Frage gibt es eine Möglichkeit das in eine Batch.datei oder eine andere Art von Datei zu packen, dass diese mir dann nur diese Tabellen oder alles was unter dem Wort "FAILED" steht anzeigt?
Da ich aber, ich würde mal sagen, nur geringe Programmierfähigkeiten besitzte und diese dann nur in C++, hänge ich nun einwenig in der Luft.
Wäre schön wenn mir jemand einen Lösungsanssatz nennen könnte.....
schonmal Danke im Vorraus für eure Hilfe.
Gruss Stephan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 64308
Url: https://administrator.de/forum/in-einer-txt-datei-einen-bestimmten-bereich-auslesen-64308.html
Ausgedruckt am: 24.12.2024 um 16:12 Uhr
19 Kommentare
Neuester Kommentar
Versuchs mal mit ner Batch datei die so aussieht:
miniversum
@echo off & setlocal enabledelayedexpansion
set "failedzeile="
FOR /F "tokens=1 delims=" %%a in ('find /N "FAILED" Datei.txt) do if not defined failedzeile set failedzeile = %%a
FOR /F "skip=%failedzeile% delims=" %%l in (Datei.txt) do echo %%i
set /a failedzeile-=1
set counter=0
FOR /F "skip=%failedzeile% delims=" %%l in (Datei.txt) do (
if !counter! leq 4 echo %%i>>Tabelle.txt
set /a counter+=1
)
set "failedzeile="
FOR /F "tokens=1 delims=" %%a in ('find /N "FAILED" Datei.txt) do if not defined failedzeile set failedzeile = %%a
FOR /F "skip=%failedzeile% delims=" %%l in (Datei.txt) do echo %%i
set /a failedzeile-=1
set counter=0
FOR /F "skip=%failedzeile% delims=" %%l in (Datei.txt) do (
if !counter! leq 4 echo %%i>>Tabelle.txt
set /a counter+=1
)
miniversum
Moin TheQuestion,
>..ist da vielleicht noch irgendwo nen Fehler drin den ich übersehen habe?
Nein, Du nicht... aber ich *schäm*
Sorry, ich hatte auch nur biooptisch-global gescant (=einen kurzen Blick darauf geworfen).
Der nächste Fehler ist für einen Laien kaum zu finden:
Bei den dynamischen Zählvariablen wird im Gegensatz zu allen anderen CMD-Variablen zwischen GROSS- und klein-Schreibung unterschieden. Sprich GROSS-%%I ist ungleich klein-%%i.
Und das ist in mehreren FOR-Anweisungen so.
Ich versuche es mal ungetestet zu korrigieren:
So in etwa müsste es von miniversum gemeint gewesen sein... ich habe alle GROSS-%%I durch klein-%%i ersetzt.
Bitte neuer Versuch.
Grüße
Biber
>..ist da vielleicht noch irgendwo nen Fehler drin den ich übersehen habe?
Nein, Du nicht... aber ich *schäm*
Sorry, ich hatte auch nur biooptisch-global gescant (=einen kurzen Blick darauf geworfen).
Der nächste Fehler ist für einen Laien kaum zu finden:
Bei den dynamischen Zählvariablen wird im Gegensatz zu allen anderen CMD-Variablen zwischen GROSS- und klein-Schreibung unterschieden. Sprich GROSS-%%I ist ungleich klein-%%i.
Und das ist in mehreren FOR-Anweisungen so.
Ich versuche es mal ungetestet zu korrigieren:
@echo off & setlocal EnableDelayedExpansion
set "failedzeile="
FOR /F "tokens=1 delims=" %%a in ('find /N "FAILED" Dateiname') do (
if not defined failedzeile set "failedzeile=%%a"
)
REM Uncomment for Debug ##: FOR /F "skip=%failedzeile% delims=" %%i in (Dateiname) do echo %%i
set /a failedzeile-=1
set counter=0
FOR /F "skip=%failedzeile% delims=" %%i in (Dateiname) do (
if !counter! leq 4 echo %%i>>Tabelle.txt
set /a counter+=1
)
So in etwa müsste es von miniversum gemeint gewesen sein... ich habe alle GROSS-%%I durch klein-%%i ersetzt.
Bitte neuer Versuch.
Grüße
Biber
Hallo TheQuestion!
Ersetze
durch
oder besser
Grüße
bastla
[Edit] "findstr"-Variante ergänzt [/Edit]
Ersetze
FOR /F "tokens=1 delims=" %%a in ('find /N "FAILED" Dateiname') do (
FOR /F "<b>skip=2</b> delims=" %%a in ('find /N "FAILED" Dateiname') do (
FOR /F "delims=:" %%a in ('findstr /N "FAILED" Dateiname') do (
Grüße
bastla
[Edit] "findstr"-Variante ergänzt [/Edit]
Lese es jetzt erst. Ups hab das mal wieder ncith getestet.
@TheQuestion
Nimm mal die Batch die Biber gepostet hat.
In der ersten Forschleife fehlt noch was. Mach aus dem
Dann sollte es gehen.
miniversum
EDIT: ups zu spät.
@TheQuestion
Nimm mal die Batch die Biber gepostet hat.
In der ersten Forschleife fehlt noch was. Mach aus dem
FOR /F "tokens=1 delims=" %%a in ('find /N "FAILED" Datei.txt') do (
das:FOR /F "skip=2 tokens=1 delims=" %%a in ('find /N "FAILED" Datei.txt') do (
Dann sollte es gehen.
miniversum
EDIT: ups zu spät.
Hallo TheQuestion!
Es werden in dieser Version die zu verwendenden Dateien mit "set"-Zeilen am Anfang festgelegt. Außerdem habe ich Zeilennummer und 2 Leerzeilen vor bzw nach Ausgabe der Tabellen hinzugefügt - wenn nicht gewünscht, die entsprechenden "echo"-Zeilen entfernen.
Grüße
bastla
@echo off & setlocal EnableDelayedExpansion
set "Datei=D:\Robolog.txt"
set "Tabelle=D:\Tabelle.txt"
if exist "%Tabelle%" del "%Tabelle%"
set "failedzeile="
FOR /F "delims=:" %%a in ('findstr /N "FAILED" "%Datei%"') do set "failedzeile=%%a" & call :Ausgabe
goto :eof
:Ausgabe
echo Zeile %failedzeile%>>"%Tabelle%"
set /a failedzeile-=1
set counter=0
FOR /F "usebackq skip=%failedzeile% delims=" %%i in ("%Datei%") do (
if !counter! leq 4 echo %%i>>"%Tabelle%"
set /a counter+=1
)
echo.>>"%Tabelle%"
echo.>>"%Tabelle%"
goto :eof
Grüße
bastla
Eigentlich hatte ich da oben etwas mehr geschrieben, nämlich:
Hallo TheQuestion!
Es werden in dieser Version die zu verwendenden Dateien mit "set"-Zeilen am Anfang festgelegt. Außerdem habe ich Zeilennummer und 2 Leerzeilen vor bzw nach Ausgabe der Tabellen hinzugefügt - wenn nicht gewünscht, die entsprechenden "echo"-Zeilen entfernen.
Grüße
bastla
Hallo TheQuestion!
@echo off & setlocal EnableDelayedExpansion
set "Datei=D:\Robolog.txt"
set "Tabelle=D:\Tabelle.txt"
if exist "%Tabelle%" del "%Tabelle%"
set "failedzeile="
FOR /F "delims=:" %%a in ('findstr /N "FAILED" "%Datei%"') do set "failedzeile=%%a" & call :Ausgabe
goto :eof
:Ausgabe
echo Zeile %failedzeile%>>"%Tabelle%"
set /a failedzeile-=1
set counter=0
FOR /F "usebackq skip=%failedzeile% delims=" %%i in ("%Datei%") do (
if !counter! leq 4 echo %%i>>"%Tabelle%"
set /a counter+=1
)
echo.>>"%Tabelle%"
echo.>>"%Tabelle%"
goto :eof
Es werden in dieser Version die zu verwendenden Dateien mit "set"-Zeilen am Anfang festgelegt. Außerdem habe ich Zeilennummer und 2 Leerzeilen vor bzw nach Ausgabe der Tabellen hinzugefügt - wenn nicht gewünscht, die entsprechenden "echo"-Zeilen entfernen.
Grüße
bastla
Moin TheQuestion,
>kann mir dadurch ziemlich viel arbeit sparen
Ist ja auch in Ordnung...aber das Setzen des Beitrags auf "Gelöst" ist noch Dein Job!
@bastla [OT - zum Bug beim Posten]
Habe den bei Deinem Kommentar aufgefallenen Bug im ) eingestellt.
Werde auch posten, wenn dieser Bug lokalisiert und gefixt ist.
An Deinem geposteten Kommentar finde ich auch keine Auffälligkeiten.
Grüße
Biber
>kann mir dadurch ziemlich viel arbeit sparen
Ist ja auch in Ordnung...aber das Setzen des Beitrags auf "Gelöst" ist noch Dein Job!
@bastla [OT - zum Bug beim Posten]
Habe den bei Deinem Kommentar aufgefallenen Bug im ) eingestellt.
Werde auch posten, wenn dieser Bug lokalisiert und gefixt ist.
An Deinem geposteten Kommentar finde ich auch keine Auffälligkeiten.
Grüße
Biber
@Biber
Falles es ev hilft: Von dem Bug sind auch andere Threads / User betroffen, siehe zB Bug im Script - wer kennt sich aus?
und Dateinamen aus Ftpverzeichnis auslesen, in HTML-Links umwandeln und in .txt speichern
Grüße
bastla
Falles es ev hilft: Von dem Bug sind auch andere Threads / User betroffen, siehe zB Bug im Script - wer kennt sich aus?
und Dateinamen aus Ftpverzeichnis auslesen, in HTML-Links umwandeln und in .txt speichern
Grüße
bastla