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 Leerzeile aus txt-Datei löschen

Mitglied: ManneKL

ManneKL (Level 1) - Jetzt verbinden

23.05.2006, aktualisiert 24.05.2006, 7862 Aufrufe, 11 Kommentare

Leerzeile löschen

Hallo,
mit welchen Patch-Befehl kann ich aus mehreren .txt-Dateien immer die dritte Zeile (Leerzeile)rauslöschen?Oder kann ich es mit einen CMD-Befehl z.Bsp:
for /f %i in ('dir /b *.txt') do findstr /b /v "" %i
Komme leider zu keinen brauchbaren Ergebnis.

Danke
MK
Mitglied: Schirrmeister
23.05.2006 um 15:07 Uhr
Du kannst erst die ersten beiden Zeilen in eine andere Datei schreiben, und dann mit

for /F "skip=3 delims=" %%I in ( datei.txt ) do ( echo %%I>>datei_neu.txt )

den Rest ab der 4. Zeile...
Das delims= löscht die Trennzeichen, damit sollte die ganze Zeile in der Variable stehen.
Bitte warten ..
Mitglied: gogoflash
23.05.2006 um 15:19 Uhr
Hi,


wenn alle Leerzeilen entfernt werden sollen.

for /f %%i in ('dir /b *.txt') do findstr . %%i >> neu%%i

Gruß Miguel
Bitte warten ..
Mitglied: ManneKL
23.05.2006 um 15:27 Uhr
Hi Schirrmeister,
bringt Fehler:"%%I" ist syntaktisch an dieser Stelle nicht verarbeitbar.
bei
for /F "skip=4 delims=" %%I in ( *.txt ) do ( echo %%I>>*_neu.txt )

Habe mehrere txt-Dateien ,
Sorry, betrifft in diesen Dateien die vierte Zeile(Leerzeile).

Danke
MK
Bitte warten ..
Mitglied: gogoflash
23.05.2006 um 15:33 Uhr
Hi,


Das Problem mit dieser FOR Schleife ist, dass sie bei einem Auftauchen einer zweiten Leeren Zeile strandet. Da %%i nicht definiert ist und die Schleife nicht initalisiert wird.

Meine Frage ist muss den nur die 4te Leerzeile entfernt werden oder können es alle sein.


Ist zwar nett gemeint, aber bricht sich das Genick.

Gruß Miguel
Bitte warten ..
Mitglied: ManneKL
23.05.2006 um 15:38 Uhr
Hi Miguel,

ja nur die vierte Zeile aus jeder txt-Datei.
Gruß
MK
Bitte warten ..
Mitglied: gogoflash
23.05.2006 um 15:54 Uhr
Hi,

hiermit sollte es gehen.

01.
REM Erstmal Dateien einlesen
02.
REM Aufrufen der Subroutine Sub und übergabe des Dateinamens.
03.
for /f %%a in ('dir /b *.txt') DO call :sub %%a
04.

05.
REM goto End Of File, wenn FOR Schleife durchgelaufen ist
06.
goto :eof
07.

08.
:sub
09.

10.
REM Bis einschließlich Zeile 3 ausgeben. Zeilenzahl wird aus findstr gefischt.
11.
REM findstr /N gibt 1:tertert aus.
12.
REM Deshalb : als Token
13.

14.
for /F "delims=: tokens=1,2" %%a in ('findstr /N . %1') do IF %%a LEQ 3 echo %%b >> neu%1
15.

16.
REM Jetzt geben wir den Rest aus mit more. Ab der 4ten Zeile
17.
REM also erst die 5 usw wird ausgegeben.
18.
more +4 %1 >> neu%1
Zu deinem Code:
Der erinnert mich an meinen Anfang mit Batch. Da hast Du einiges durcheinander gebracht.


for /F "skip=4 delims=" %%I in ( *.txt ) do ( echo %%I>>*_neu.txt )

1) *.txt ist nicht verarbeitbar für die Schleife, da *.txt kein Befehl ist.
deshalb dir /b *.txt
2) dir /b *.txt liefert Dir einen Dateinamen. Da ist es noch essig mit Schneiden, da könnest Du höchstens etwas aus dem Dateinamen ausschneiden. Für andere Zwecke brauchbar.
Deshalb Übergabe des Dateinamens an die 2 FOR Schleife
3) Mit Findstr und der Prüfung der Zeilenzahl wird das unsaubere Herausspringen aus der FOR Schleife verhindert, wenn es auf eine Leerzeile trifft.
for /f %%a in ('....') DO kann bei einer Leerzeile die Variable %%a nicht setzen.
4) Der Rest mit more sollte klar sein.
5) Delims wird nicht gebraucht, da Du die gesamte Zeile haben willst.Ausser für die Zeilennummer.


Übrigens mein Code kann bestimmt von einem Profibatcher noch weiter eingedampft werden.Und es gibt Tools die die Zeile ohne Probleme löschen können. Zb sed .
Aber das führt jetzt zuweit.

Gutes batch Tutorial unter:
https://www.administrator.de/Workshop_Batch_for_Runaways_-_Part_2_Ein_bi ...

Gruß Miguel
Bitte warten ..
Mitglied: ManneKL
24.05.2006 um 06:25 Uhr
Hi Miguel,

vielen herzlichen Dank für Deine Lösung.
Sie funktioniert und ich kann sie noch weiter ausbauen.

Also, Danke
MK
Bitte warten ..
Mitglied: ManneKL
24.05.2006 um 06:25 Uhr
Bitte warten ..
Mitglied: ManneKL
24.05.2006 um 06:26 Uhr
Bitte warten ..
Mitglied: ManneKL
24.05.2006 um 07:01 Uhr
Hi Miguel,

noch eine nachfolgende Frage:
Wie kann ich aus den neu entstandenen txt-Dateien anschließend wieder die Ursprungs-Bezeichnung (XXXXXXXX.txt)dieser txt-Dateien erzeugen?Weil nach Ablauf der Prozedur immer vor den Dateien die Bezeichnung "neuXXXXXXXX.txt" gesetzt wird.
Zum Schluß will ich diese txt-Dateien auch noch in einen neuen Ordner kopieren und in dem Ursprungsodner sollen alle Dateien als Kopie erhalten bleiben die ich später löschen will.
Vielleich kannst Du mir noch mal helfen

Danke
MK
Bitte warten ..
Mitglied: gogoflash
24.05.2006 um 10:12 Uhr
Hi,


eine Version ohne Zwischendatei. Die korrogierte Datei wird sofort in einen neuen Ordner erstellt.
01.
REM Hier geändert
02.
set quellpfad=d:\a\1
03.
set zielpfad=d:\a\2
04.

05.
REM Erstmal Dateien einlesen
06.
REM Aufrufen der Subroutine Sub und übergabe des Dateinamens.
07.
for /f %%a in ('dir /b %quellpfad%\*.txt') DO call :sub %%a
08.

09.
REM goto End Of File, wenn FOR Schleife durchgelaufen ist
10.
goto :eof
11.

12.
:sub
13.
echo %1 >> ert.txt
14.

15.
REM Bis einschließlich Zeile 3 ausgeben. Zeilenzahl wird aus findstr gefischt.
16.
REM findstr /N gibt 1:tertert aus.
17.
REM Deshalb : als Token
18.

19.
REM Ausgabe in den neuen Pfad mit alten Namen
20.
for /F "delims=: tokens=1,2" %%a in ('findstr /N . %quellpfad%\%1') do IF %%a LEQ 3 echo %%b >> %zielpfad%\%~nx1
21.

22.
REM Jetzt geben wir den Rest aus mit more. Ab der 4ten Zeile
23.
REM also erst die 5 usw wird ausgegeben.
24.

25.
REM Aus Quellpfad in den Zielpfad auslesen. Von +4
26.
more +4 %quellpfad%\%1 >> %zielpfad%\%1
Gruß Miguel
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Merkwürdige Zeilenformatierung in txt Datei

gelöst Frage von miczarBatch & Shell3 Kommentare

Hallo zusammen, ich arbeite mit .cxv Dateien. Das ist nichts anderes wie .txt Dateien nur mit Programmspezifischer Endung. Pro ...

Windows 7

Txt Datei mit findstr durchsuchen

gelöst Frage von 126594Windows 72 Kommentare

Hallo zusammen! Leider komme ich gerade an meine Grenzen und weiß nicht mehr weiter, jetzt hoffe ich hier, den ...

Batch & Shell

Wert in einer TXT Datei suchen

Frage von nolle99Batch & Shell11 Kommentare

Hallo Leute Ich habe ein Problem Ich habe mir von meiner Seite alle URLs in einer TXT gespeichert (30.000 ...

Batch & Shell

Txt datei veränden - "steuerung" für VirtualBox

gelöst Frage von AngryDadBatch & Shell7 Kommentare

Hallo zusammen! Möchte eine .bat schreiben mit der ich meine VM´s steuern kann. Hab es schon geschafft die Liste ...

Neue Wissensbeiträge
Windows 7

Windows 7 u. Server 2008 (R2) SHA-2-Update kommt am 12. März 2019

Information von kgborn vor 1 TagWindows 75 Kommentare

Kleine Info für die Admins der oben genannten Maschinen. Ab Juli 2019 werden Updates von Microsoft nur noch mit ...

Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Information von ChriBo vor 3 TagenFirewall2 Kommentare

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 4 TagenInternet1 Kommentar

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 4 TagenGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Heiß diskutierte Inhalte
Hardware
IT-Werkzeugkoffer bis 50,- EUR
gelöst Frage von departure69Hardware44 Kommentare

Hallo. Ich bin als IT-Systembetreuer einer Gemeinde zusätzlich auch der IT-Systembetreuer einer Grund- und Hauptschule. Dort muß ich jedoch ...

Netzwerke
Verteilung von Programmdaten außerhalb des internen Netzwerkes
Frage von mertaufmbergNetzwerke27 Kommentare

Guten Morgen liebe Administratoren, ich versuche zurzeit eine möglichst sichere und einfache Lösung zu suchen, um ein Programmverzeichnis über ...

Netzwerkmanagement
Richtfunknetzwerk mit vielen Hops stabiler gestalten
Frage von turti83Netzwerkmanagement22 Kommentare

Hallo, in meinem Dorf habe ich vor ca. einem Jahr ein Backbone aufgebaut um die Nachbarschaft mit Internet zu ...

Hyper-V
Intel MSC Raid 5 Rebuild
Frage von DannysHyper-V19 Kommentare

Hallo Community, Ich habe einen Modul Server von Intel in Betrieb. Dort ist eine Festplatte aus dem Raid 5 ...