focus1610
Goto Top

Dateien mittels einer Batch umbenennen

Hallo,

ich habe ein Problem bei der Umbenunng von Dateien mittels einer Batch Datei. Ich hoffe mir kann jemand weiterhelfen.

Ich habe einem Ordner wo Datei mitels einer Verbindung zu unseren Kunden eingehen.

Diese Datein sehen wie folgt aus:

Kunde Anton:

Dateiname 1: Anton (ohne weitere Endung oder ähnliches)
Dateiname 2: Anton.13278964
Dateiname 3: Anton.47854125

also immer unterschiedlich

Kunde Berta:

Dateiname 1: Berta (ohne weitere Endung oder ähnliches)
Dateiname 2: Berta.475896452
Dateiname 3: Berta.859124781

also auch immer unterschiedlich

Jetzt zu meinem Problem:

Die Datein müssen nun ein ein Backup Verzeichnis und dann in den jeweiligen Kunden eingangsordner verschoeben werden.
Wenn ich aber die Dateien mit dem Kundennamen (z.B. Anon) in das Backupverzeichnis kopieren überschriebt er mir immer die bereits vorhandenen Datei.
Deshalb habe ich mir in der Batch datei folgenden Befehl eingebaut:

____________________
set Datei=Anton
set mydate=%date:~-4%%date:~-7,2%%date:~-10,2%
set mytime=%time:~-11,2%%time:~-8,2%%time:~-5,2%
set NEU=Anton_%mydate%_%mytime%.txt
ren C:\Pfad\%Datei% %Neu%
copy C:\Pfad\Anton*.* C:\Pfad\backup
move C:\Pfad\%Neu% C:\Pfad\Antoneingang
____________________
Hier benennt er aber nur die Dateien die "Anton" heißen um. Nicht die anderen Anton Dateien.

Was muß ich eingeben, damit er alle Anton Datein umbenennt.

Ich verzweifle. Mein Freund Google konnte mir auch irgendwie nicht helfen.

Danke für Eure Hilfe.

Focus1610
Kommentar vom Moderator Biber am 19.03.2012 um 13:00:19 Uhr
ich habe ein Problem bei der Umbenunng von Dateien ...
Du bist ca. der 802te mit diesem Problem...
Set /a rgc += 1
#802
Setx rgc %rgc%

Content-ID: 182183

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

Ausgedruckt am: 17.11.2024 um 13:11 Uhr

cse
cse 19.03.2012 um 11:43:34 Uhr
Goto Top
eventuell mit set datei=anton*?
bastla
bastla 19.03.2012 um 12:22:12 Uhr
Goto Top
Hallo Focus1610!

Da würde sich eine Schleife anbieten - ungetestet etwa:
@echo off & setlocal
set "Datei=Anton"  
set "Quelle=C:\Pfad"  
set "Bak=C:\Pfad\backup"  
set "Ziel=C:\Pfad\%Datei%eingang"  
set "mydate=%date:~-4%%date:~-7,2%%date:~-10,2%"  
set "mytime=%time:~-11,2%%time:~-8,2%%time:~-5,2%"  

md "%Bak%" 2>nul  
md "%Ziel%" 2>nul  
pushd "%Quelle%"  
for /f "delims=" %%i in ('dir /b "%Datei%*"') do echo ren "%%i" "%%i_%mydate%_%mytime%.txt"  
::copy "%Datei%*" "%Bak%"  
::move "%Neu%*" "%Ziel%\"  
popd
Der ganze Ablauf wird vorerst nur simuliert (es werden nur die Umbenennungsbefehle ausgegeben) - wenn's vernünftig aussieht, einfach "echo" und "::" in den Zeilen 12 - 14 entfernen ...

Grüße
bastla
Focus1610
Focus1610 21.03.2012 um 08:33:38 Uhr
Goto Top
Hallo nochmal,

das Problem habe ich grundsätzlich gelöst.

Danke bastla für Deinen Code, läuft soweit ganz gut.

Aber, bei einstelliger Uhrzeit (z.B. 08:15:00) lauft der Code auf Fehler, da die Null bei den Stunden nicht mitgeschrieben wird. Dadurch ist im Dateiname ein Leerzeichen und ex kommt ein Syntax Fehler. Sobald die Uhrzeit 2-stellig wird ist wieder alles gut.

Wir bekommeich das denn jetzt noch hin?

Danke.

Gruß

Focus1610
bastla
bastla 21.03.2012 um 09:21:50 Uhr
Goto Top
Hallo Focus1610!

Ändere die Zeile 12 auf
for /f "delims=" %%i in ('dir /b "%Datei%*"') do echo ren "%%i" "%%i_%mydate%_%mytime: =0%.txt"
Grüße
bastla