65883
Goto Top

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

Content-Key: 99984

Url: https://administrator.de/contentid/99984

Printed on: April 19, 2024 at 12:04 o'clock

Member: bastla
bastla Oct 22, 2008 at 18:35:25 (UTC)
Goto Top
Hallo truecolor!

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)  
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
Mitglied: 65883
65883 Oct 23, 2008 at 05:30:47 (UTC)
Goto Top
Hallo Basla,

und erst mal vielen Dank.

Jetzt hab ich nochmal nach den Datein geschaut und mir ist ein kleiner Fehler unterlaufen. Die Dateien sehen so aus:

- die Extensions sind nicht alle gleich
sind teilweise einige gezipt

- die Trennung besteht aus einen Leerzeichen
Ersetze ich nun den Parameter als set "Delimiter= ", wird nix ersetzt, da das Leerzeichen in der Form wohl nicht erkannt wird. Auch %20 kann nicht eingesetzt werden, dann findet das Prg keine Dateien.

- in dem zu löschenden Teil befindet sich auch noch ein Leerzeichen

Beispiel:
asdf jkl 38485.txt
asdf jkl 4574.zip
asdf jkl 445649459.prr
asdf jkl 770694.xxx

Was müßte ich verändern, damit unter den Voraussetzungen die Dateien gefunden und bearbeitet werden?

Im Voraus vielen Dank.

Grüße ... Frank
Member: bastla
bastla Oct 23, 2008 at 06:28:44 (UTC)
Goto Top
Hallo truecolor!

Die Dateien sehen so aus: ...
Ist ja kaum ein Unterschied ... face-wink

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)  
Grüße
bastla
Mitglied: 65883
65883 Oct 23, 2008 at 07:06:49 (UTC)
Goto Top
Hallo bastla,

so langsam kommen die ein oder anderen "aha"´s face-wink

Im command-fenster kann ich schön beobachten, was die Zeilen bewirken.

Nur .. es wird nix umbenannt.

Der Ergebnis-String sieht genauso aus, wie er sein sollte, nur bewegen tut sich am Ende nix.

Grüße ... Frank
Member: bastla
bastla Oct 23, 2008 at 07:47:02 (UTC)
Goto Top
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 face-wink) dann eben der Befehl nur angezeigt wird.

Genau dieses "echo" steht immer noch vor dem für das Umbenennen zuständigen
ren "%%i" "%%b"
- also einfach entfernen, und dann kannst Du auch den Ernstfall testen ...

Grüße
bastla
Mitglied: 65883
65883 Oct 23, 2008 at 09:28:49 (UTC)
Goto Top
Hallo bastla,

jetzt mußte ich aber mal tüchtig loslachen. Dass ich das nicht gleich selbst gesehen hatte. Schande über mich face-smile

Aber anscheinend war ich ja auch nicht ganz doof, habe nämlich das zu editierende Verzeichniss komplett auf einen anderen PC kopiert um es dort als Sandkasten zu "quälen".


Vielen Dank und Gruß ... Frank

PS. läuft gerade ... und absolut genial ... super super super
Mitglied: 65883
65883 Oct 23, 2008 at 10:05:36 (UTC)
Goto Top
...
der Explorer zeigte mir bei einer Suchaktion plötzlich, dass jede Menge Dateien noch nicht umbenannt wurden.

Grund:
Der Explorer war wohl sehr gründlich und zeigte mir zu den normalen Verzeichnis-Inhalten auch noch die Inhalte von ZIP-Dateien an. Und in den vielen ZIP-dateien liegen noch ein paar tausend von diesen umzubenennenden Dateien.

Ich möchte ja nicht allzu sehr meinen Newbie-Bonus ausspielen, aber gibt es dafür auch noch eine Lösung ?

...ausser löschen face-wink

Grüße ... Frank
Member: bastla
bastla Oct 23, 2008 at 17:11:26 (UTC)
Goto Top
Hallo truecolor!

Ein realistischer Ablauf könnte sein: Entpacken, Umbenennen und (bei Bedarf) neuerliches Zippen der Dateien - eine Möglichkeit einer Bearbeitung innerhalb des Archivs kenne ich leider nicht.

Grüße
bastla