Mit batch die erste Zeile aus txt Dateien löschen
Hallo, ich brauche Hilfe bei einem Problem das ich derzeit habe.
In einem Verzeichnis befinden sich mehrere Textdateien mit gleichem inhaltlichen Aufbau.
Beispiel:
CP00
CP01
CP02
CP03
CP04
CP05
usw.
Nun möchte ich per batch in allen txt Dateien die erste Zeile (Hier im Beispiel CP00) entfernen.
Die Bezeichnung der ersten Zeile ist in allen txt Dateien gleich.
Wie kann ich das am effektivsten lösen ?
In einem Verzeichnis befinden sich mehrere Textdateien mit gleichem inhaltlichen Aufbau.
Beispiel:
CP00
CP01
CP02
CP03
CP04
CP05
usw.
Nun möchte ich per batch in allen txt Dateien die erste Zeile (Hier im Beispiel CP00) entfernen.
Die Bezeichnung der ersten Zeile ist in allen txt Dateien gleich.
Wie kann ich das am effektivsten lösen ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 391348
Url: https://administrator.de/contentid/391348
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
8 Kommentare
Neuester Kommentar
Oki, war vorher faul und habe einfach nen Beispiel kopiert
Diese Beispiel ist getestet und funktioniert bei mir:
@echo off
IF EXIST dummy.txt (
ECHO Datei existiert
) ELSE (
ECHO Datei existiert nicht
)
PAUSE
VG
und noch nen bisserl zum spielen
Für mich mal wieder nen Rückblick in längst vergessene Batch-Dateien
Für mich mal wieder nen Rückblick in längst vergessene Batch-Dateien
@echo off
IF EXIST dummy.txt (
GOTO VERARBEITEN
) ELSE (
GOTO ERSTELLEN
)
:VERARBEITEN
ECHO Datei existiert
del dummy.txt
ECHO Datei wurde gelöscht
GOTO END
:ERSTELLEN
ECHO Datei existiert nicht
ECHO. > dummy.txt
ECHO Datei wurde erstellt
GOTO END
:END
PAUSE
Die Bezeichnung der ersten Zeile ist in allen txt Dateien gleich.
wenn die bat Datei versehentlich mehrmals angeklickt wird und dabei die darauf folgenden Zeilen gelöscht werden.
Wenn du die erste Zeile einliest und prüfst ob sie mit dem Vorgabestring (hier Variable search) übereinstimmt, dann könnten selbst geänderte und unveränderte Dateien im selben Verzeichnis liegen, ohne dass das Probleme macht.
@echo off &setlocal
set "search=CP00"
set "ln1="
for %%i in (*.txt) do (
set "fname=%%~i"
setlocal EnableDelayedExpansion
<"!fname!" set /p "ln1="
if "!search!"=="!ln1!" (
>"!fname!.~tmp" more +1 "!fname!"
move /y "!fname!.~tmp" "!fname!"
)
endlocal
)
Steffen