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.
Benutze ein Programm dazu. Joe z.B. https://www.chip.de/downloads/Joe-letzte-Freeware-Version_13004904.html
> 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.
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!
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
hier ist mal n screenshot wie lupas das Datum anhängt... (und ja kann auch Uhrzeit... natürlich) 'sid
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.
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
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
Ich finde das MultiRenameTool von Totalcommander für sowas sehr gut.
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
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.
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.
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.
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
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
Hallo! Aus Interesse: wozu benötigt man das Datum und die Uhrzeit im Dateinamen? Beides ist doch für jede Datei bereits gespeichert!
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.