
65883
22.10.2008, aktualisiert am 23.10.2008
Teile von Dateinamen löschen
Hallo zusammen,
leider gibt es kein mir bekanntes Programm, dass diese kleine Aufgabe erledigt:
ich habe über hunterte verschiedene Verzeichnisse auf einer Platte verteilt dateien liegen, die z.B. so ausschauen
asdfjkl_38485.txt
asdfjkl_4574.txt
asdfjkl_445649459.txt
...
Nun möchte ich den Anfangsteil "asdfjkl_" in einem Batch entfernen lassen. Sprich, die ganze Platte durchforsten
und alle Dateien, die den Anfangs-Suchstring "asdfjkl_" besitzen, eben diesen Anfangsteil löschen.
Ist das viel Arbeit sowas zu stricken? Ich wüßte nicht, wo ich anfangen sollte.
Gruß ...Frank
leider gibt es kein mir bekanntes Programm, dass diese kleine Aufgabe erledigt:
ich habe über hunterte verschiedene Verzeichnisse auf einer Platte verteilt dateien liegen, die z.B. so ausschauen
asdfjkl_38485.txt
asdfjkl_4574.txt
asdfjkl_445649459.txt
...
Nun möchte ich den Anfangsteil "asdfjkl_" in einem Batch entfernen lassen. Sprich, die ganze Platte durchforsten
und alle Dateien, die den Anfangs-Suchstring "asdfjkl_" besitzen, eben diesen Anfangsteil löschen.
Ist das viel Arbeit sowas zu stricken? Ich wüßte nicht, wo ich anfangen sollte.
Gruß ...Frank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 99984
Url: https://administrator.de/forum/teile-von-dateinamen-loeschen-99984.html
Ausgedruckt am: 22.05.2025 um 14:05 Uhr
8 Kommentare
Neuester Kommentar
Hallo truecolor!
Das sollte etwa so gehen:
Zum Testen könntest Du für den Basisordner (der am Ende immer einen "\" haben muss) einen Ordner mit nur wenigen Dateien angeben, ansonsten auch zB "D:\" für das gesamte Laufwerk "D:".
Sollte eine Datei nicht umbenannt werden können, weil eine gleichnamige Datei bereits existiert, wird eine entsprechende Meldung ausgegeben.
Grüße
bastla
Das sollte etwa so gehen:
@echo off & setlocal
set "Basis=D:\Testordner\mit wenigen Dateien\"
set "Prefix=asdfjkl"
set "Delimiter=_"
set "Ext=.txt"
for /f "delims=" %%i in ('dir /s /b /a-d "%Basis%%Prefix%%Delimiter%*%Ext%"') do for /f "tokens=1* delims=%Delimiter%" %%a in ("%%~nxi") do if not exist "%%~dpi%%b" (echo ren "%%i" "%%b") else (echo "%%i" konnte nicht umbenannt werden)
Sollte eine Datei nicht umbenannt werden können, weil eine gleichnamige Datei bereits existiert, wird eine entsprechende Meldung ausgegeben.
Grüße
bastla
Hallo truecolor!

Versuch es damit:
Grüße
bastla
Die Dateien sehen so aus: ...
Ist ja kaum ein Unterschied ... Versuch es damit:
@echo off & setlocal
set "Basis=D:\"
set "Prefix=asdf jkl"
set "Delimiter= "
set "Ext=.*"
for /f "delims=" %%i in ('dir /s /b /a-d "%Basis%%Prefix%%Delimiter%*%Ext%"') do for /f "tokens=2* delims=%Delimiter%" %%a in ("%%~nxi") do if not exist "%%~dpi%%b" (echo ren "%%i" "%%b") else (echo %%i konnte nicht umbenannt werden)
bastla
Hallo truecolor!
Gewohnheitsmäßig schreibe ich bei eher heiklen Batches ein "echo" vor den eigentlichen Befehl, um gefahrlos testen zu können, da (wie Du feststellen konntest
) dann eben der Befehl nur angezeigt wird.
Genau dieses "echo" steht immer noch vor dem für das Umbenennen zuständigen
- also einfach entfernen, und dann kannst Du auch den Ernstfall testen ...
Grüße
bastla
Gewohnheitsmäßig schreibe ich bei eher heiklen Batches ein "echo" vor den eigentlichen Befehl, um gefahrlos testen zu können, da (wie Du feststellen konntest
Genau dieses "echo" steht immer noch vor dem für das Umbenennen zuständigen
ren "%%i" "%%b"
Grüße
bastla