online 1
gast (50)

/ Forum / WindowsXP

WindowsXPWindowsXP

Fragevon dread_lord vom 08.03.2019, 19:29 Options

Batch: Dateien umbenennen - Präfix entfernen

Hallo,

folgende Problemstellung....

es gibt eine Anzahl von x Dateien in einem Ordern, die ein Präfix tragen...

Beispiel:

_HA_123456789.txt

Alle tragen das selbe Präfix, aber sie sollen alle so umbenannt werden, dass nur noch die ID, also 123456789.txt im Dateinamen enthalten ist. Lässt sich sowas mittels einem Batch-Script realisieren? Wenn ja, wie?

Ein Freeware-Tool, egal welches, kommt leider im diesem Fall nicht in Frage.

Gruß,
dread_lord


Antwort schreiben

Antwort 1 von batti-batch vom 20.11.2019, 14:37 Options

Hallo dread_lord,


dieses Problem läßt sich mit einer Batch-Datei lösen.
Ich habe eine solche Datei für Dich erstellt. Diese Datei kannst Du im SET-Block mühelos Deinen Gegebenheiten anpassen:

SET "quell_verzeichnis=Laufwerksbuchstabe und kompletter Pfad"
SET "praefix=_HA_"
SET "extension=txt"
SET "logfile=Dateiname incl. Laufwerksbuchstaben und komplettem Pfad"


Du kannst das Verzeichnis oder auch den Präfix ändern. Wenn Du irgendwann statt *.txt-Dateien andere Dateien verändern möchtest, ist das ebenfalls problemlos machbar.

Da aber das Ändern von Dateinamen nicht nur bei einer sehr großen Anzahl von Dateien schnell zu Problemen führen kann, solltest Du einen Testlauf in einem separatem Verzeichnis durchführen.

Eine Logdatei (deren Namen und Verzeichnis Du selbstverständlich ebenfalls Deinen Gegebenheiten anpassen kannst) informiert Dich über den Erfolg der Aktion.

Hier nun das komplette Programm:

@ECHO off
SETLOCAL enabledelayedexpansion

REM
REM Testdatei
REM Entfernen eines Praefixes aus dem Dateinamen
REM 
REM (c) batti-batch 
REM erstellt am 20.11.2007
REM
REM http://www.supportnet.de/threads/1517567
REM


SET "quell_verzeichnis=Laufwerksbuchstabe und kompletter Pfad"
SET "praefix=_HA_"
SET "extension=txt"
SET "logfile=Dateiname incl. Laufwerksbuchstaben und komplettem Pfad"

ECHO Logdatei erzeugt von %~f0 >%logfile%
ECHO am %date% um %time% >>%logfile%
ECHO. >>%logfile%

FOR /f "tokens=1-6 delims= " %%i IN ('DIR /b /on "%quell_verzeichnis%\%praefix%*.%extension%" ^2^>^>%logfile%') DO (
SET dateiname=%%i& CALL :aendern !dateiname!
)
GOTO :weiter

:aendern
SET dateiname=!dateiname:%praefix%=!
IF EXIST %quell_verzeichnis%\!dateiname! (
ECHO Fehler^^! Datei !dateiname! existiert bereits.>>%logfile%
) ELSE (
REN %quell_verzeichnis%\%praefix%!dateiname! !dateiname!
IF EXIST %quell_verzeichnis%\!dateiname! (
ECHO Erfolg: Datei %praefix%!dateiname! umbenannt in !dateiname!>>%logfile%
) ELSE (
ECHO Fehler^^! Umbenennen der Datei %quell_verzeichnis%\!dateiname! nicht erfolgreich.>>%logfile%
)

)

GOTO :eof


:weiter
REM weitere Verarbeitung

ECHO.>>%logfile%
ECHO Logdatei beendet am %date% um %time%>>%logfile% 
ECHO Fertig^^!



Viel Spaß beim Testen.


Herzliche Grüße

batti-batch

Ähnliche Themen

Umbenennen von Dateien zum Ordnernamen
Soldier  12.06.2007 - 215 Hits - 6 Antworten

Dateien umbenennen
powertom  24.06.2007 - 326 Hits - 5 Antworten

Batch-Programmierung: Dateinamen mit Variable versehen
Paulo87  20.09.2007 - 186 Hits - 4 Antworten

Batch mit Xcopy für eigene Dateien
Ghoraschi  25.09.2007 - 176 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Sun Jan 25 18:15:21 2026