Hallo, wie kann man am einfachsten eine Datei kopieren und gleichzeitig umbenennen. Ähnlich wie z.B. " copy c:\test.jpg c:\test1.jpg"). Bei Filemove() kann mann ja eine Zieldatei angeben, aber die Quelldatei wird gelöscht. Wie kann man das Problem ohne großen Aufwand (z.B. Datei erst irgendwo zwischenspeichern ö.ä.) lösen?
Danke
Datei kopieren und gleichzeitig umbenennen
-
- [ gelöst ]
-
igillan -
10. Februar 2011 um 08:46 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
FileCopy + FileMove. Wenn bei FileMove Quelle und Ziel auf dem gleichen Dateisystem liegen, dann sollte es eine echte (schnelle) Umbenennung sein :).
Johannes
-
Danke für die Antwort. Ich glaube ich habe mich nicht richtig ausgedrückt. Ich möchte folgendes realisieren:
"copy c:\quelle\test.jpg c:\ziel\test.jpg" ( geht mit Filecopy) dann
"copy c:\ziel\test.jpg c:\ziel\test+Datum.jpg" (würde mit Filemove gehen aber die Quelldatei soll nicht gelöscht werden)
Am Ziel entstehen also 2 gleiche Dateien (eine mit Zeitstempel im Namen). Ich könnte jetzt zwar mit Filecopy die Datei mit dem Originalnamen zurückkopieren aber da es sich um mehrere Dateien handelt,und das Ziel ein NAS ist würde das Ganze nur länger dauern. Ich hoffe jetzt ist etwas klarer was ich vorhabe. Vielleicht sehe ich aber auch den Wald vor lauter Bäumen nicht....
-
Was gefällt dir an folgendem Befehl nicht?
[autoit]FileCopy("C:\quelle.txt", "D:\ziel.txt")
[/autoit] -
Was gefällt dir an folgendem Befehl nicht?
[autoit]FileCopy("C:\quelle.txt", "D:\ziel.txt")
[/autoit]
weil ich bei FileCopy als Ziel nur ein Verzeichnis aber keinen Namen angeben kann, glaub ich zumindest -
- Offizieller Beitrag
FileCopy ist wieder mal so ein Fall von einer unverständlichen Beschreibung in der Hilfe.
Wenn man die Hilfe und das Beispiel studiert, wird nicht klar das man eine Zeildatei angeben kann.
Wirkt für jeden so, als wenn man nur das Zielverzeichnis vorgeben kann.In der Deutschen Hilfe ist als dest das angegeben:
ZitatDas Zielverzeichnis der zu kopierenden Datei(en).
-
Alles klar, es geht! Ich hatte es garnicht erst probiert! Danke
-
Irgendwie habe ich mich zu früh gefreut!
[autoit]
Warum geht das nicht:#Include <Date.au3>
[/autoit]
$time=_NowCalc()
FileCopy("c:\test\1.jpg","c:\test\1"&$time&".jpg",1) -
Das geht nicht, weil _NowCalc Slashes als Trennezichen im Datum enthält und das nicht im Dateinamen erlaubt ist, denn diese stellen die Trennzeichen für Verzeichnisse dar. Also musst du diese ersetzen:
[autoit]$time=StringReplace(_NowCalc(), "/", "-")
[/autoit] -
Sorry, die Doppelpunkte müßten auch mit raus. Wie packt man das in eine Zeile?
EDIT
Egal, ich machs mit 2 Zeilen! Danke noch mal an alle! -
So geht es in einer Zeile:
StringReplace(StringReplace(_NowCalc(), "/", "-"), ":", "_") -
Ich bin begeistert!!!!