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
GELÖST

In einer txt.datei einen bestimmten Bereich auslesen

Frage Microsoft Windows Tools

Mitglied: TheQuestion

TheQuestion (Level 1) - Jetzt verbinden

20.07.2007, aktualisiert 18.10.2012, 4866 Aufrufe, 19 Kommentare

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=>

24bf2c2696e34c266df5863402ab049b-1 - Klicke auf das Bild, um es zu vergrößern

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
Mitglied: miniversum
20.07.2007 um 13:16 Uhr
Versuchs mal mit ner Batch datei die so aussieht:
@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
)

miniversum
Bitte warten ..
Mitglied: TheQuestion
20.07.2007 um 14:09 Uhr
danke für die schnelle antwort
probiere das gleich mal aus
Bitte warten ..
Mitglied: TheQuestion
23.07.2007 um 08:24 Uhr
mhm Ok, dass hat erstmal noch nicht geklappt. Versuche es aber weiter.
Hier ist der Fehler der mir ausgegeben wird.

=> " delims="" ist syntaktisch an dieser Stelle nicht verarbeitbar.
das bekomme ich zweimal...

Sagt mit leider nicht viel .......
Bitte warten ..
Mitglied: Biber
23.07.2007 um 09:01 Uhr
Moin TheQuestion,

mmh...die Fehlermeldung ist auch irreführend, weil der Tippfehler ganz woanders liegt:

STREICHE: ....... ('find /N "FAILED" Datei.txt) .......
SETZE: ............ ('find /N "FAILED" Datei.txt') .......

---> bzw. ergänze das fehlende einfache Hochkomma.

Grüße
Biber
Bitte warten ..
Mitglied: TheQuestion
23.07.2007 um 09:42 Uhr
ok den Tippfehler habe ich korregiert, aber die Fehlermedlung bleibt die selbe,
so sieht die Batch-datei nun aus.

01.
@echo off & setlocal enabledelayedexpansion 
02.
set "failedzeile=" 
03.
FOR /F "tokens=1 delims=[]" %%a in ('find /N "FAILED" Dateiname') do if not defined failedzeile set failedzeile = %%a 
04.
FOR /F "skip=%failedzeile% delims=" %%l in (Dateiname) do echo %%i 
05.
set /a failedzeile-=1 
06.
set counter=0 
07.
FOR /F "skip=%failedzeile% delims=" %%l in (Dateiname) do ( 
08.
if !counter! leq 4 echo %%i>>Tabelle.txt 
09.
set /a counter+=1 
10.
11.
pause
ist da vielleicht noch irgendwo nen Fehler drin den ich übersehen habe?

MfG
Bitte warten ..
Mitglied: Biber
23.07.2007 um 10:19 Uhr
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:
01.
@echo off & setlocal EnableDelayedExpansion 
02.
set "failedzeile=" 
03.
FOR /F "tokens=1 delims=[]" %%a in ('find /N "FAILED" Dateiname') do ( 
04.
     if not defined failedzeile set "failedzeile=%%a" 
05.
06.
REM Uncomment for Debug ##: FOR /F "skip=%failedzeile% delims=" %%i in (Dateiname) do echo %%i 
07.
set /a failedzeile-=1 
08.
set counter=0 
09.
FOR /F "skip=%failedzeile% delims=" %%i in (Dateiname) do ( 
10.
             if !counter! leq 4 echo %%i>>Tabelle.txt 
11.
             set /a counter+=1 
12.
)
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
Bitte warten ..
Mitglied: TheQuestion
23.07.2007 um 10:35 Uhr
super danke,

test läuft ergebnisse gibts gleich!
Bitte warten ..
Mitglied: TheQuestion
23.07.2007 um 10:38 Uhr
Mhm Test ist gelaufen, Ergebniss
=> bekomme immer noch den selben Fehler bloss diesmal nur noch einmal!
Ist schon ne Verbesserung
Sorry würde gerne mehr helfen als immer nur Fehler zuposten........
Bitte warten ..
Mitglied: bastla
23.07.2007 um 11:03 Uhr
Hallo TheQuestion!

Ersetze
01.
FOR /F "tokens=1 delims=[]" %%a in ('find /N "FAILED" Dateiname') do (
durch
01.
FOR /F "<b>skip=2</b> delims=[]" %%a in ('find /N "FAILED" Dateiname') do (
oder besser
01.
FOR /F "delims=:" %%a in ('findstr /N "FAILED" Dateiname') do (
Grüße
bastla

[Edit] "findstr"-Variante ergänzt [/Edit]
Bitte warten ..
Mitglied: TheQuestion
23.07.2007 um 11:12 Uhr
Erstmal herzlichen Dank für eure Hilfe

@ bastla=> klasse jetzt funktioniert die batch.datei.
Hier mal die korrigierte Batch:

01.
@echo off & setlocal EnableDelayedExpansion 
02.
set "failedzeile=" 
03.
FOR /F "skip=2 delims=[]" %%a in ('find /N "FAILED" Dateiname') do ( 
04.
     if not defined failedzeile set "failedzeile=%%a" 
05.
06.
REM Uncomment for Debug ##: FOR /F "skip=%failedzeile% delims=" %%i in (Dateiname) do echo %%i 
07.
set /a failedzeile-=1 
08.
set counter=0 
09.
FOR /F "skip=%failedzeile% delims=" %%i in (Dateiname) do ( 
10.
             if !counter! leq 4 echo %%i>>Tabelle.txt 
11.
             set /a counter+=1 
12.
)
So beitrag kann dann auch auf gelöst und geschlossen gesetzt werden.

Gruss TheQuestion
Bitte warten ..
Mitglied: miniversum
23.07.2007 um 11:25 Uhr
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
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.
Bitte warten ..
Mitglied: TheQuestion
23.07.2007 um 12:08 Uhr
egal ob zu spät

danke nochmals für die rege Beteiligung
Bitte warten ..
Mitglied: TheQuestion
23.07.2007 um 12:26 Uhr
Sorry aber mir ist gerade nochwas eingefallen,

in den Logs stehen mehr als nur eine Tabelle mit Failed drin.
Kann man da eine For-Schleife ein bauen die von einer Tabelle in die nächste springt?
Habe es mit einer anderen Batch.datei porbiert die die von oben immer aufruft aber das bringt ja nichts, oder mehr gesagt immer das selbe.

Kann mir da jemand nochmal unter die arme greifen??
Bitte warten ..
Mitglied: bastla
23.07.2007 um 13:21 Uhr
Hallo TheQuestion!
01.
@echo off & setlocal EnableDelayedExpansion 
02.
set "Datei=D:\Robolog.txt" 
03.
set "Tabelle=D:\Tabelle.txt" 
04.
if exist "%Tabelle%" del "%Tabelle%" 
05.
set "failedzeile=" 
06.
FOR /F "delims=:" %%a in ('findstr /N "FAILED" "%Datei%"') do set "failedzeile=%%a" & call :Ausgabe 
07.
goto :eof 
08.
:Ausgabe 
09.
echo Zeile %failedzeile%>>"%Tabelle%" 
10.
set /a failedzeile-=1 
11.
set counter=0 
12.
FOR /F "usebackq skip=%failedzeile% delims=" %%i in ("%Datei%") do ( 
13.
             if !counter! leq 4 echo %%i>>"%Tabelle%" 
14.
             set /a counter+=1 
15.
16.
echo.>>"%Tabelle%" 
17.
echo.>>"%Tabelle%" 
18.
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
Bitte warten ..
Mitglied: bastla
23.07.2007 um 13:24 Uhr
Eigentlich hatte ich da oben etwas mehr geschrieben, nämlich:

Hallo TheQuestion!

01.
 
02.
@echo off & setlocal EnableDelayedExpansion 
03.
set "Datei=D:\Robolog.txt" 
04.
set "Tabelle=D:\Tabelle.txt" 
05.
if exist "%Tabelle%" del "%Tabelle%" 
06.
set "failedzeile=" 
07.
FOR /F "delims=:" %%a in ('findstr /N "FAILED" "%Datei%"') do set "failedzeile=%%a" & call :Ausgabe 
08.
goto :eof 
09.
:Ausgabe 
10.
echo Zeile %failedzeile%>>"%Tabelle%" 
11.
set /a failedzeile-=1 
12.
set counter=0 
13.
FOR /F "usebackq skip=%failedzeile% delims=" %%i in ("%Datei%") do ( 
14.
             if !counter! leq 4 echo %%i>>"%Tabelle%" 
15.
             set /a counter+=1 
16.
17.
echo.>>"%Tabelle%" 
18.
echo.>>"%Tabelle%" 
19.
goto :eof 
20.
 
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
Bitte warten ..
Mitglied: TheQuestion
23.07.2007 um 13:34 Uhr
ok da wäre ich selber nicht drauf gekommen!
Also nochmal danke nun habe ich alles bei sammmen und kann mir dadurch ziemlich viel arbeit sparen!!!

Achso habe ich fast vergessen, es funktioniert einwandfrei!

Bis zum nächsen Mal

Gruss Thequestion
Bitte warten ..
Mitglied: Biber
23.07.2007 um 14:10 Uhr
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 AFABS (Adminstrator.de-Bug-and-Feature-Tracking-Sülzdibülz) eingestellt.

Werde auch posten, wenn dieser Bug lokalisiert und gefixt ist.
An Deinem geposteten Kommentar finde ich auch keine Auffälligkeiten.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
23.07.2007 um 16:13 Uhr
@Biber

Thx

Grüße
bastla
Bitte warten ..
Mitglied: bastla
23.07.2007, aktualisiert 18.10.2012
@Biber

Falles es ev hilft: Von dem Bug sind auch andere Threads / User betroffen, siehe zB http://www.administrator.de/forum/bug-im-script-wer-kennt-sich-aus%3f-6 ...
und http://www.administrator.de/forum/dateinamen-aus-ftpverzeichnis-auslese ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
PHP
Website einem bestimmten IP-Bereich zugänglich machen
gelöst Frage von ThoomaasPHP6 Kommentare

Hallo alle zusammen, ich habe mal wieder in kleines PHP Programm. Ich möchte eine Intranetseite nur einem bestimmten IP-Bereich ...

Batch & Shell
Ungewöhnliche Txt.Datei-Abfrage mit Batch
Frage von DaTobsnBatch & Shell3 Kommentare

Ich habe in einem Ordner verschiedene txtDateien, welche verschiedenes enthalten. Ich will in ALLEN txtDateien nach etwas zuvor durch ...

Batch & Shell
Auslesen von bestimmten Datenendungen am Server
Frage von 14634Batch & Shell6 Kommentare

Hallo zusammen, folgendes Problem: wir haben ca. 150 MS Server, bei den meisten liegt unter C: eine ISO weil ...

Batch & Shell
Auslesen bestimmter Spalten aus csv
gelöst Frage von Berti82Batch & Shell6 Kommentare

Hallo, Ich bekomme regelmäßig csv-Dateien mit ca. 77 Spalten und prinzipiell unbegrenzten Zeilen. Diese muss ich eindampfen auf 5 ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...