Dateien mit Batch-Befehle umbennen

Status
Es sind keine weiteren Antworten möglich.
A

andre96

Gast
Hallo,

ich möchte gerne alle Datein in einem Ordner umbennen.
In dem Ordner sind *.txt, *.doc, *.xls, *.bmp Dateien.
Alle Dateien haben einen unterschiedlichen Namen.

Ich möchte gerne das alle Dateinamen auf das heutige Datum geändert werden.
Das habe ich bereits:

Code:
@echo off
set mydate=%date:~-4%%date:~-7,2%%date:~-10,2%
move *.* %mydate%.*
Leider funktioniert das nicht.
Ich möchte das alle Dateien (egal welcher Dateityp) zu 20130822.* umbenannt werden.
Für * soll die Dateiendung erhalten bleiben.

Ich hoffe mir kann geholfen werden.

Vielen Dank.
 

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
24.968
Hi,

dir ist klar dass du ein Problem kriegst, wenn du zwei Dateien hast, die den gleichen Dateinamen haben oder? Also z.B. zwei Dateien, die "20130822.txt" heißen kann es in einem Ordner nicht geben - bist du dir dessen bewusst?

Schau dir einfach einmal die Fehlermeldung an die du kriegst. "Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch". Jetzt lässt du dir ausgeben, was du da schreiben wolltest. Und überlegst dir einfach, was genau dein Befehl eigentlich macht. Versuch den Befehl mal von Hand so einzugeben und schau was da passiert. Da kommst du bestimmt drauf.

VG,
Mad
 
A

andre96

Gast
Ja, das ist mir klar.
Allerdings befinden sich in dem Ordner von jedem Dateityp (*.txt, *.doc, *.xls, *.bmp) jeweils nur eine Datei!

Das sollte eigentlich kein Problem sein...

Sollte ich besser den Befehl "ren" verwenden?
 

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
24.968
Hi,

schau dir mal den Befehl an der da generiert wird!

move *.* 20130822.*

Was soll Windows damit machen? ;)

VG,
Mad
 
A

andre96

Gast
@ygbr: Danke, hab ich gerade auch festgetsellt das dass funktioniert. :)

@Madman1209: Probier zum Beispiel das mal, da funktioniert es auch mit "move"!

Code:
set mydate=%date:~-4%%date:~-7,2%%date:~-10,2%
move *.doc %mydate%.doc
 

easy.2ci

Commodore
Dabei seit
Mai 2006
Beiträge
4.224
Du kannst alle Dateien mit jeder beliebigen Endung auf einmal ändern:

ren *.* %date:~-4%%date:~-7,2%%date:~-10,2%.*


Funktioniert natürlich nur, wenn am angegebenen Datum nur eine Datei pro Dateityp besteht. Aber das ist ja gegeben sagst du.
 

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
24.968
Hi,

ja, genau darauf wollte ich ja hinaus! Die Zeile, die du drin hast kann nicht funktionieren! Wenn du eine Dateiendung mit angibst dann schon! Aber nicht, wenn beides als ".*" deklariert wird.

Sauber finde ich es auch mit "rename" oder "ren" nicht. Erstens ändert er so sicher auch den Dateinamen der Batch, wenn sie im gleichen Ordner liegt (wovon ich ausgehe, da du keinen Pfad in der Batch mit angibst) und zweitens ist es trotz allem nicht gut, einfach anzunehmen, dass die Datei nur einmal drin vorkommt. Da sollte man nicht so "fahrlässig" sein.

Aber gut, mach wie du meinst.

VG,
Mad
 
Status
Es sind keine weiteren Antworten möglich.
Top