Kopiert eine oder mehrere Dateien.
FileCopy, QuelleMuster, ZielMuster , Überschreiben
Name einer Datei oder eines Ordners, oder ein Platzhaltermuster wie C:\Temp\*.tmp. Wenn kein absoluter Pfad angegeben ist, wird QuelleMuster im A_WorkingDir-Verzeichnis vermutet.
Name oder Suchmuster des Ziels. Wenn kein absoluter Pfad angegeben ist, wird das Ziel im A_WorkingDir-Verzeichnis vermutet.
Wenn vorhanden, wird das erste Sternchen (*
) im Dateinamen mit dem Quelldateinamen ohne Dateiendung ersetzt, während das erste Sternchen nach dem letzten Punkt (.
) mit der Dateiendung der Quelldatei ersetzt wird. Wenn ein Sternchen vorhanden ist, aber die Dateiendung weggelassen wird, wird die Dateiendung der Quelldatei verwendet.
Die folgenden nahezu identischen Beispiele zeigen, wie man eine einfache Kopie durchführen kann (unter Beibehaltung der vorhandenen Dateinamen), indem man nur den Ordnernamen angibt:
FileCopy, C:\*.txt, C:\Mein Ordner
FileCopy, C:\*.txt, C:\Mein Ordner\*.*
Das Zielverzeichnis muss bereits vorhanden sein. Wenn Mein Ordner nicht existiert, verwendet das erste Beispiel oben "Mein Ordner" als Zieldateinamen, während das zweite Beispiel keine Dateien kopiert.
Dieser Parameter bestimmt, ob bereits vorhandene Dateien überschrieben werden dürfen. Wenn dieser Parameter 1 (true) ist, wird der Befehl vorhandene Dateien überschreiben. Wenn dieser Parameter weggelassen wird oder 0 (false) ist, wird der Befehl vorhandene Dateien nicht überschreiben.
Dieser Parameter kann ein Ausdruck sein. Es können auch Ausdrücke angegeben werden, die True oder False zurückgeben (weil True und False intern in 1 und 0 aufgelöst werden).
[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.
ErrorLevel wird bei Misserfolg auf die Anzahl der Dateien gesetzt, die nicht kopiert werden konnten, und bei Erfolg auf 0.
In jedem Fall wird ErrorLevel auf 0 gesetzt, falls die Quelldatei eine einzelne Datei ist (ohne Platzhalter) und nicht existiert. Um diesen Zustand zu erkennen, können Sie FileExist() oder IfExist auf die Quelldatei anwenden, bevor Sie sie kopieren.
Im Gegensatz zu FileMove wird das Kopieren einer Datei auf sich selbst immer als Fehler gewertet, auch dann, wenn der Überschreibmodus aktiv ist.
Wenn Dateien gefunden wurden, wird A_LastError entweder auf Null (0) oder unmittelbar nach dem letzten Fehler auf das Ergebnis der Systemfunktion GetLastError() gesetzt. Ansonsten enthält A_LastError einen Fehlercode, der eventuell kenntlich macht, warum keine Dateien gefunden wurden.
FileCopy kopiert nur Dateien. Wenn Sie stattdessen den kompletten Inhalt eines Ordners (also alle Dateien und Unterordner) kopieren wollen, können Sie das Beispiel ganz unten verwenden. Um einen einzelnen Ordner (einschließlich Unterordner) zu kopieren, verwenden Sie FileCopyDir.
Die Operation wird auch dann fortgesetzt, wenn Fehler auftreten.
FileMove, FileCopyDir, FileMoveDir, FileDelete
Macht eine Kopie, aber behält den originalen Dateinamen.
FileCopy, C:\Meine Dokumente\Liste1.txt, D:\Backup\
Kopiert eine Datei in das gleiche Verzeichnis, aber mit einem anderen Namen.
FileCopy, C:\Meine Datei.txt, C:\Meine neue Datei.txt
Kopiert Textdateien in ein anderes Verzeichnis und gibt ihnen eine neue Endung.
FileCopy, C:\Ordner1\*.txt, D:\Neuer Ordner\*.bkp
Kopiert alle Dateien und Unterordner in einen anderen Ordner.
FehlerAnzahl := KopiereDateienUndOrdner("C:\Mein Ordner\*.*", "D:\Zielordner für Dateien & Ordner") if (FehlerAnzahl != 0) MsgBox %FehlerAnzahl% Dateien/Ordner konnten nicht kopiert werden. KopiereDateienUndOrdner(QuelleMuster, ZielOrdner, Überschreiben = false) ; Kopiert alle Dateien und Ordner von QuelleMuster in einen Ordner mit den Namen ZielOrdner und ; gibt die Anzahl an Dateien/Ordnern zurück, die nicht kopiert werden konnten. { ; Zuerst alle Dateien kopieren (aber nicht die Ordner): FileCopy, %QuelleMuster%, %ZielOrdner%, %Überschreiben% FehlerAnzahl := ErrorLevel ; Jetzt alle Ordner kopieren: Loop, %QuelleMuster%, 2 ; 2 bedeutet "nur Ordner". { FileCopyDir, %A_LoopFileFullPath%, %ZielOrdner%\%A_LoopFileName%, %Überschreiben% FehlerAnzahl += ErrorLevel if ErrorLevel ; Jeden Problemordner mit Namen anzeigen. MsgBox %A_LoopFileFullPath% kann nicht nach %ZielOrdner% kopiert werden. } return FehlerAnzahl }