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, 7817 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
Linux Tools

Mit Linux am ende einer Datei eine Leerzeile einfügen

gelöst Frage von OIOOIOOIOIIOOOIIOIIOIOOOLinux Tools30 Kommentare

Tach ihr alle, Ich wollte mal einen etwas aufwendigen Script schreiben welches via Cronejob zur bestimmten Zeiten ausgeführt werden ...

Batch & Shell

Mit batch die erste Zeile aus txt Dateien löschen

gelöst Frage von SuddenrageBatch & Shell8 Kommentare

Hallo, ich brauche Hilfe bei einem Problem das ich derzeit habe. In einem Verzeichnis befinden sich mehrere Textdateien mit ...

Batch & Shell

Zeile 12 aus einer TXT-Datei auslesen und als Datei-Name für die TXT-Datei verwenden (für sämtliche TXT-Dateien in einem Verzeichnis!)

gelöst Frage von MrBratwurstBatch & Shell15 Kommentare

Hallo liebe Batch-Pros, als Newbie stehe ich gerade vor der Aufgabe, dass ich in einem Verzeichnis mit Txt-Files (bzw. ...

Batch & Shell

Kann man mit einer .txt Datei eine .bat Datei öffnen?

gelöst Frage von HelloWorldBatch & Shell22 Kommentare

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

Neue Wissensbeiträge
Utilities
Teamviewer 14 Verbindungsprobleme mit Proxy
Tipp von PeterleB vor 3 StundenUtilities

Nach dem Umstieg von Version 13 auf 14 wollte sich TV nicht mehr mit dem Netz verbinden, ignorierte offenbar ...

Administrator.de Feedback
Unsere Datenbank wurde umgestellt
Information von Frank vor 7 StundenAdministrator.de Feedback5 Kommentare

Hallo User, ich habe in der Nacht unsere Datenbank umgestellt. D.h. neue Version (MySQL 8) und andere Örtlichkeit. Sollte ...

Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 2 TagenSonstige Systeme6 Kommentare

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Datenschutz

Microsoft und DSGVO - ob das wohl jemals klappt (Probleme beim Datenabfluss für Office Pro Plus)?

Tipp von VGem-e vor 2 TagenDatenschutz3 Kommentare

Servus Kollegen, siehe Aber wer setzt schon MS Office Pro Plus ein? Wie dann der Stand beim "normalen" MS ...

Heiß diskutierte Inhalte
Windows 10
Programm unter Windows 10 automatisch mit administrativen Rechten starten
Frage von GrafmulderWindows 1017 Kommentare

Hallo zusammen! Zur Situation: Ich benutze Windows 10 Pro für Workstations (Build 1803) mit zwei Konten. Einem Administratorkonto und ...

LAN, WAN, Wireless
Empfehlung Powerline Adapter
Frage von AgilolfingerLAN, WAN, Wireless13 Kommentare

Hallo Zusammen, ich brauche eine Empfehlung von euch. Ich möchte in einem privaten Haushalt eine Powerline Lösung einrichten. Allerdings ...

Windows Server
Cisco Annyconnect Secure Mobility Client - Windows2003 Server unable to connect
Frage von novregenWindows Server12 Kommentare

Von einem Windows 2003 Server soll eine Verbindung über Cisco Anyconnect Mobility Client zu einer Gegenstelle aufgebaut werden. Die ...

Microsoft
Schulungs-Microsoft-Konten zentral verwalten
Frage von thejarneMicrosoft9 Kommentare

Hallo zusammen, wir haben bei uns in der Firma 12 Computer-Arbeitsplätze für EDV-Schulungen, wo u.A. auch Computer-Basics-Kurse (wie verwende ...