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, 1571 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
Windows 10
Dateien ganz ohne Berechtigung (6)

Frage von StefanKittel zum Thema Windows 10 ...

Batch & Shell
gelöst Dateiinhalte vergleichen - Gemeinsamkeiten anzeigen (9)

Frage von Rotnasenkater zum Thema Batch & Shell ...

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

Frage von Akcent zum Thema Windows Server ...

Windows Server
gelöst Dateiinhalt Suche auf Clients an Server 2016 nicht funktionsfähig (2)

Frage von vBurak zum Thema Windows Server ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...

Windows Server
gelöst Parameter Übergabe Terminal Server (9)

Frage von ThomasKern zum Thema Windows Server ...

Batch & Shell
Anfängerfragen - Powershell - Mailboxvertretung im Pulk einrichten (8)

Frage von Yoshimitsu zum Thema Batch & Shell ...