Forum: PC Hard- und Software Dateiname mit Datum versehen


von Lipo (Gast)


Lesenswert?

Hallo,

ich möchte gerne mittels einer Batch-Datei Dateien kopieren und
gleichzeitig einem neuen Namen vergeben. Der Name soll aus dem Altenamen
plus Datum Uhrzeit besteht. Zudem soll ein Wildcard Operator benutzt
werden.

Ich habe schon experimentiert mit diesem:

xcopy "e:\test1\*.bak" 
"e:\test2\*_%date%_%time:~0,2%-%time:~3,2%-%time:~6,2%.bak"

Leider funktioniert das nicht ganz. Es scheint der neue Namen wird nicht
zusammengesetzt.

Kann mir da bitte jemand helfen ?

Danke.

von Jens M. (schuchkleisser)


Lesenswert?


von STK500-Besitzer (Gast)


Lesenswert?

> echo "e:\test2\*_%date%_%time:~0,2%-%time:~3,2%-%time:~6,2%.bak"

funktioniert auf der Kommandozeile problemlos.
In einer Batchdatei solltest du den Namen vor der Kopiererei erzeugen 
(ist übersichtlicher)
Dann solltest du noch "SETLOCAL EnableDelayedExpansion" mit der 
entsprechenden Variablenkennzeichnung "!" statt "%" verwenden.
Das sollte dann funktionieren.

von Lipo (Gast)


Lesenswert?

Hallo,

danke für die Hinweise.

STK500-Besitzer schrieb:
> funktioniert auf der Kommandozeile problemlos.
> In einer Batchdatei solltest du den Namen vor der Kopiererei erzeugen
> (ist übersichtlicher)
> Dann solltest du noch "SETLOCAL EnableDelayedExpansion" mit der
> entsprechenden Variablenkennzeichnung "!" statt "%" verwenden.
> Das sollte dann funktionieren.

Jetzt stehe ich aber auf dem Schlauch.

Wie soll das aus der Kommanodzeile heraus gehen? Es geht mir nicht
um den DatumTime Teil. Das geht schon mit echo, aber das * ist das 
Problem.
Und wie soll ich den Namen vorher erzeugen wenn eine Wildcard benutzt 
wird?

Gestehe, ich bin keine Experte und habe nur Halbwissen!

von sid (Gast)


Lesenswert?

mein Programm der Wahl dazu heisst noch immer LupasRename

benennt alle Deineen eines ordners oder nur dateien eines Musters 
innerhalb des Ordners,
hat eine Vorschaufunktion und erstellt wenn DU möchtest eine batchdatei 
mit der Du die Änderungen wieder rückgängig machen kannst.

Ich mag das Ding..
uralt, winzig klein.. und funzt
(keine installation)
https://rename.lupasfreeware.org/

'sid

von Marek N. (Gast)


Lesenswert?

Ich werfe noch den Advanced Renamer in die Runde: 
https://www.advancedrenamer.com/

von sid (Gast)


Angehängte Dateien:

Lesenswert?

hier ist mal n screenshot wie lupas das Datum anhängt...
(und ja kann auch Uhrzeit... natürlich)

'sid

von Lipo (Gast)


Lesenswert?

Danke für die vielen Tips.

Habe mir die erwähnten Tools kurz angesehen, aber ich denke das ist 
nicht das Richtige.

Ich möchte nochmals erläutern warum ich meiner Meinung nach ein Batch 
file benötige und mir die Rename Tools vermutlich nicht helfen.

Ich möchte verschiedene *.bak Dateien (deren Namen ich nicht kenne) aus 
einem Verzeichnis, umbenennen oder kopieren und mit dem gleichen Namen 
aber ergänzt mit dem Datum und der Zeit sichern. Das soll zum Beispile 
beim PC Start automatisch passieren.

von leo (Gast)


Lesenswert?

Lipo schrieb:
> Habe mir die erwähnten Tools kurz angesehen, aber ich denke das ist
> nicht das Richtige.

Vielleicht willst du ja eine richtige Shell samt Tools benutzen. Das 
soll es ja auch fuer dieses Spiele-OS geben ;-)
MinGW faellt mir ein: http://www.mingw.org/

leo

von WIRO (Gast)


Lesenswert?

Probiere mal bitte in der Batch:
1
for /f "tokens=*" %%i in ('dir /b e:\test1\*.bak') do (
2
  copy "%%i" "e:\test2\%%~ni_%date%_%time:~0,2%-%time:~3,2%-%time:~6,2%%%~xi"
3
  )
Das sollte zunächst ohne durch Unterverzeichnisse zu gehen 
funktionieren.

Gruß
WIRO

von Armin K. (-donald-) Benutzerseite


Lesenswert?

Ich finde das MultiRenameTool von Totalcommander für sowas sehr gut.

von Lipo (Gast)


Lesenswert?

WIRO schrieb:
> Das sollte zunächst ohne durch Unterverzeichnisse zu gehen
> funktionieren.

Danke vielmals, sehr gut, das reicht und funktioniert zunächst wie 
gewünscht.Damit komme ich weiter.

Grüße

von Jens M. (schuchkleisser)


Lesenswert?

da sieht man mal wie wichtig es ist, die richtige Frage zu stellen.
Hätte man gesagt "das muss automatisch im Autostart passieren um eine 
Datensicherung zu machen", wären die ganzen Programme nicht empfohlen 
worden.
Da geht nur was mit "for"...
Aber für ein paar manuelle Verschiebungen ist das zu frickelig 
anzupassen, das kann man besser, schneller und flexibler mit einem 
GUI-Tool.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Jens M. schrieb:
> da sieht man mal wie wichtig es ist, die richtige Frage zu stellen.

Naja, dass er das Kopieren mittels einer Batch-Datei tun möchte, deutet
ja schon darauf hin, dass er nicht nach einer manuellen Lösung sucht.

Wenn die vorgeschlagenen Programme ordentlich gemacht sind und mit all
den erforderlichen Parametern auch aus einer Batch-Datei aufrufbar sind,
stellen sie für den TE sicher auch eine Option dar. Wenn nicht, sind
diese Vorschläge keine Antwort auf seine Frage.

Aber nachdem WIRO gezeigt hat, dass das Problem sogar mit Hausmitteln
gelöst werden kann, sind alle anderen Vorschläge sowieso obsolet.

von Matthias S. (da_user)


Lesenswert?

Yalu X. schrieb:
> Aber nachdem WIRO gezeigt hat, dass das Problem sogar mit Hausmitteln
> gelöst werden kann, sind alle anderen Vorschläge sowieso obsolet.

Einen Hinweis möchte ich mir schon noch erlauben:
Heutzutage macht man sowas wohl nicht mehr per Batch, sondern per 
Powershell. Problem dabei (welches ich auch habe): man braucht es doch 
relativ flott, in Powershell müsste man sich erstmal wieder einarbeiten, 
damit greift man auf das zurück, was man kann.

von sid (Gast)


Angehängte Dateien:

Lesenswert?

Lipo schrieb:
> Ich möchte verschiedene *.bak Dateien (deren Namen ich nicht kenne) aus
> einem Verzeichnis, umbenennen oder kopieren und mit dem gleichen Namen
> aber ergänzt mit dem Datum und der Zeit sichern.

Japp exakt das tun alle diese tools..
man gibt den Ordner und ne Dateimaske (*.bak) an
und bei LupasRename klickt man das Häkchen bei "Einfügen nach Dateiname"
und wählt per Rechtsklick Erstellungsdatum und das gewünschte format.
fertig.
danach nur auf umbenennen klicken.
(siehe Bild.. ja ich hab als Maske *.png genommen weil ich grad keinen 
Ordner hab mit baks die nicht eh schon n Datum im Dateinamen haben)

Naja das automatisch Ausführen bei Systemstart kann ich Dir leider nicht 
zeigen..
AAber Du kannst die so gemachten Einstellungen als ini speichern 
(rechtsklick menü).
und LPR per Kommandozeile mit jener ini aufrufen:

LupasRename.exe [PATH="Pathname"] [FILTER="Filters"] 
[LRFILE="LRUserIniFile_file.ini"] [RECURSIVE=1|0] [RENAME=1|0] 
[UNDOFILE="batch_undo_file.bat"] [PAUSE=1|0]

Naja und wie man son Programaufruf in den Autostart schreibt ist ja auch 
kein Geheimnis, richtig?
das schöne daran, es erstellt auf wunsch automatisch ne undo.bat wie Du 
siehst..
nur für den Fall dass man sich die ersten Male mit den optionen etwas 
vertut ;)

Ich denke das wird mit allen genannten Tools ähnlich gehen
(ich selbst hab halt nur Lupas)

Lipo schrieb:
> Ich möchte nochmals erläutern warum ich meiner Meinung nach ein Batch
> file benötige und mir die Rename Tools vermutlich nicht helfen.
Doch doch solche Tools können dir schon helfen wie Du siehst.

'sid

von Angsthase (Gast)


Lesenswert?

Matthias S. schrieb:

> Heutzutage macht man sowas wohl nicht mehr per Batch, sondern per
> Powershell. Problem dabei (welches ich auch habe): man braucht es doch
> relativ flott, in Powershell müsste man sich erstmal wieder einarbeiten,
> damit greift man auf das zurück, was man kann.

bei uns in der Firma ist Powershell leider deaktiviert, deshalb mache 
ich solche Sachen auch per Batch

von Route_66 H. (route_66)


Lesenswert?

Hallo!
Aus Interesse: wozu benötigt man das Datum und die Uhrzeit im 
Dateinamen?
Beides ist doch für jede Datei bereits gespeichert!

von Yalu X. (yalu) (Moderator)


Lesenswert?

Angsthase schrieb:
> bei uns in der Firma ist Powershell leider deaktiviert, deshalb mache
> ich solche Sachen auch per Batch

Warum ist die Powershell gesperrt und cmd.exe nicht? Gibt es bei der
Powershell irgendwelche Sicherheitsbedenken, die es bei cmd.exe nicht
gibt?

von sid (Gast)


Lesenswert?

Route_66 H. schrieb:
> Hallo!
> Aus Interesse: wozu benötigt man das Datum und die Uhrzeit im
> Dateinamen?
> Beides ist doch für jede Datei bereits gespeichert!

bei automatisch generierten backups hat man häufig (aus bequemlichkeit)
nur banalnamen in einem zentralen Ordner:
backups/database.bkp
backups/storage.bkp
backups/process.bkp

nun würden diese beim nächsten backup überschrieben;
hängt man nachträglich das Datum an, wird nichts überschrieben und man 
kann sie Archivieren ohne in eine Dateinamenkollision zu tappen.

sodass man
backups/database_feb.bkp
backups/database_mar.bkp
backups/database_apr.bkp
backups/storage_feb.bkp
backups/storage_mar.bkp
backups/storage_apr.bkp
backups/process_feb.bkp
backups/process_mar.bkp
backups/process_apr.bkp

hat (oder wie auch immer genau man das Datum/Uhrzeit auflösen lässt)

So wie Du Fotos durchnummerierst damit sie sich nicht gegenseitig 
überschreiben ;)

'sid

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.