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

Dateiinhalt auslesen, wenn Kriterium zutrifft ganze Datei löschen

Frage Entwicklung Batch & Shell

Mitglied: B-Real

B-Real (Level 1) - Jetzt verbinden

04.10.2013, aktualisiert 10:18 Uhr, 1562 Aufrufe, 4 Kommentare, 2 Danke

Hi Community,

ich hab eine Frage zum Auslesen von Dateiinhalten, hoffentlich weiß hier wer weiter.

Und zwar bekomme ich von einem Konverter Dateien, die ich dann per Batch abhole, umbenenne und verschiebe. Manchmal erstellt der Konverter aber leere Daten, in denen nur der Start-Satz (beginnend mit 01LAGERD) und der Ende-Satz (beginnend mit 98LAGERD) steht. Aber kein richtiger Inhalt, es sieht dann so aus (das 131004 danach ist ein Zeitstempel und variiert je nach aktuellem Tagesdatum):

01.
01LAGERD       131004 
02.
98LAGERD       131004
Diese Dateien möchte ich löschen, da sie nicht benötigt werden. Es lässt sich leider nicht verhindern, dass der Konverter diese Daten manchmal erstellt.

Die Dateien mit richtigem Inhalt dürfen aber nicht gelöscht werden. Diese sehen zB so aus:

01.
01LAGERD       1308060000000000J 
02.
23LAGERD       0011485690        00001012533                         000091    
03.
24LAGERD       0011485690        XXXX Zentrallager - NEU       Straße 3, Objekt 2 
04.
25LAGERD       0011485690        P000010010Anlieferung um 19:00 Uhr 
05.
22LAGERD       0011485690        130809 850                  092239 
06.
98LAGERD       13080600000000000000000006
Oder so:

01.
01LAGERD       1308050000000000J 
02.
335324684    00142090           1307500002     00000360000VL  Verlesung   20130806VTD 
03.
335324692    00142090           1307500002     00000060000VL  Verlesung   20130806VTD 
04.
335324693    00142091           1307500003     00000070000VL  Verlesung   20130806VTD 
05.
335324694    00142091           1307500003     00000070000VL  Verlesung   20130806VTD 
06.
335324695    00142091           1307500003     00000070000VL  Verlesung   20130806VTD 
07.
335325676    00142392           1304513410     00000070000RA  Rampe       20130806VTD 
08.
335325677    00142392           1304513410     00000070000RA  Rampe       20130806VTD 
09.
335326799    00132331           1308500002     00000002500VL  Verlesung   20130806VTD 
10.
335327197    00138403           1306513521     00000075000M3  SM 3. Stock 20130806VTD 
11.
335327198    00138403           1306513521     00000075000M3  SM 3. Stock 20130806VTD 
12.
335327199    00138403           1306513521     00000075000M3  SM 3. Stock 20130806VTD 
13.
335327316    00138667           1308500002     00000030000VL  Verlesung   20130806VTD 
14.
98LAGERD       13080500000000000000000014
Usw.

D.h. wenn ein Inhalt zwischen 01LAGERD und 98LAGERD steht, darf die Datei nicht gelöscht werden und soll unberührt bleiben. Nur wenn kein Inhalt dazwischen steht, wie im Code ganz oben zu sehen, soll die ganze Datei gelöscht werden.

Hat jemand vielleicht eine Idee ob das möglich ist und wenn ja wie man das anstellen kann?

Danke!
Mitglied: bastla
04.10.2013 um 10:32 Uhr
Hallo B-Real!

Würde es genügen, festzustellen, ob "98LAGERD" am Beginn der Zeile 2 steht? Wenn ja etwa so:
for /f "delims=:" %%i in ('findstr /bn "98LAGERD" "D:\Deine Datei.txt"') do if %%i==2 (echo leer & pause & goto :eof)
Grüße
bastla
Bitte warten ..
Mitglied: B-Real
04.10.2013 um 10:42 Uhr
Hi bastla,

ja das würde vollkommen reichen, denn wenn der Konverter "leere" Daten erstellt, befindet sich das 98LAGERD immer an der gleichen Stelle. Also in der 2. Zeile.

Für den findstr Befehl muss ich aber den direkten Dateinamen angeben und kann nicht mit Wildcards arbeiten, stimmts?

Danke dir schonmal.
Bitte warten ..
Mitglied: bastla
04.10.2013 um 12:51 Uhr
Hallo B-Real!
Für den findstr Befehl muss ich aber den direkten Dateinamen angeben und kann nicht mit Wildcards arbeiten, stimmts?
In diesem Fall nicht - eine weitere Schleife sollte aber genügen:
for %%d in ("D:\Deine Datei*.txt") do for /f "delims=:" %%i in ('findstr /bn "98LAGERD" "%%d"') do if %%i==2 echo del "%%d"
Damit sollte das Löschen schon mal simuliert werden und wenn Du das "echo" entfernst auch tatsächlich stattfinden ...

Grüße
bastla
Bitte warten ..
Mitglied: B-Real
04.10.2013 um 13:14 Uhr
Auf dich ist echt Verlass, danke bastla. Damit klappt es perfekt und ist somit als gelöst markiert.

Gruß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Texteil anhand zweier Vorgaben aus Datei löschen (12)

Frage von tiforst zum Thema Batch & Shell ...

Windows Server
gelöst Windows 2012R2 kann Datei nicht löschen (2)

Frage von Akcent zum Thema Windows Server ...

Batch & Shell
gelöst Powershell - Datei prüfen ob vorhanden, dann löschen (9)

Frage von Bugger zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(6)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Linux
gelöst Google Chrome startet nicht (12)

Frage von Thomas91 zum Thema Linux ...