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.
> 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
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
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
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