Textdatei editieren
Hallo.
Ich hoffe, mir kann jemand bei der Lösung eines kleinen Problems helfen.
Ich habe eine Textdatei (Name ist immer unterschiedlich).
Nun sollen in dieser Textdatei die ersten 12 Zeilen gelöscht werden.
Anschließend sollen von allen anderen Zeilen die jeweils ersten 16 Zeichen gelöscht werden.
Danach soll die editierte Textdatei wieder unter dem gleichen Namen gespeichert werden.
Ist das per Batchdatei möglich und wie erhält die Batchdatei den Namen der zu editierenden Textdatei?
Kann man evtl. die Batchdatei aus einer anderen Batchdatei aufrufen?
Danke für eure Hilfe.
Liebe Grüße von
Sabine
Ich hoffe, mir kann jemand bei der Lösung eines kleinen Problems helfen.
Ich habe eine Textdatei (Name ist immer unterschiedlich).
Nun sollen in dieser Textdatei die ersten 12 Zeilen gelöscht werden.
Anschließend sollen von allen anderen Zeilen die jeweils ersten 16 Zeichen gelöscht werden.
Danach soll die editierte Textdatei wieder unter dem gleichen Namen gespeichert werden.
Ist das per Batchdatei möglich und wie erhält die Batchdatei den Namen der zu editierenden Textdatei?
Kann man evtl. die Batchdatei aus einer anderen Batchdatei aufrufen?
Danke für eure Hilfe.
Liebe Grüße von
Sabine
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 59648
Url: https://administrator.de/forum/textdatei-editieren-59648.html
Ausgedruckt am: 22.04.2025 um 10:04 Uhr
6 Kommentare
Neuester Kommentar
Ist das die einzigste Datei in diesem Verzeichnis? Wenn ja dann gehts so (ungetestet):
miniversum
@echo off & setlocal enabledelayedexpansion
for /F "delims=" %%n in ('dir /b /a-D C:\verzeichnis\*.*') do set filename=%%n
if exist %filename%_temp del %filename%_temp
for /F "skip=12 delims=" %%t in ('type "%filename%"') do (
set text=%%t
echo !text:~16!>>"%filename%_temp"
)
del "%filename%"
ren "%filename%_temp" "%filename%"
miniversum
Es gibt noch die möglichkeit das du die dateiimmer auf die Batch datei ziehst per drag & drop oder als parameter mitgibst.
Dann müstest du die Batch datei Folgendermasen abändern:
miniversum
Dann müstest du die Batch datei Folgendermasen abändern:
@echo off & setlocal enabledelayedexpansion
set "filename=%~1"
if exist %filename%_temp del %filename%_temp
for /F "skip=12 delims=" %%t in ('type "%filename%"') do (
set text=%%t
echo !text:~16!>>"%filename%_temp"
)
del "%filename%"
ren "%filename%_temp" "%filename%"
miniversum
Moin sabinchen,
willkommen im Forum.

@miniversum
Kleiner Verbesserungsvorschlag:
Die "beliebige" Drag &Drop-Datei kann mit oder ohne Laufwerk/Pfad-Angabe kommen.
Spätestens beim Rename wird aber als zweiter Parameter etwas OHNE Lw/Pfad gebraucht.
Ich würde daher mit eher mit Copy als mit Rename arbeiten.
Grüße
Biber
willkommen im Forum.
Leider ist die zu editierende Datei aber nicht die einzigste im Verzeichnis
Es hätte auch gereicht, wenn es die einzige gewesen wäre.. @miniversum
Kleiner Verbesserungsvorschlag:
Die "beliebige" Drag &Drop-Datei kann mit oder ohne Laufwerk/Pfad-Angabe kommen.
Spätestens beim Rename wird aber als zweiter Parameter etwas OHNE Lw/Pfad gebraucht.
Ich würde daher mit eher mit Copy als mit Rename arbeiten.
@echo off & setlocal enabledelayedexpansion
set "filename=%~1"
Set "tempfile=%temp%\$%~nx1%"
if exist "%tempfile%" del "%tempfile%"
for /F "skip=12 delims=" %%t in ('type "%filename%"') do (
set text=%%t
echo !text:~16!>>"%tempfile%"
)
copy /y "%tempfile%" "%filename%" >nul
Grüße
Biber