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, 1469 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 ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

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

Frage von tiforst zum Thema Batch & Shell ...

Batch & Shell
Daten nach dem auslesen per Powershell moven - kopieren - löschen (1)

Frage von Luckyyluck zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...