Verschiebt eine oder mehrere Dateien oder benennt sie um.
FileMove, SourcePattern, DestPattern [, Flag]
| SourcePattern | Ein einzelner Dateiname oder ein Suchmuster wie z. B. C:\Temp\*.tmp. Wird in dem Quellverzeichnis des Scripts (oder relativ dazu) angenommen, sofern kein absoluter Pfad angegeben ist. |
| DestPattern | Der Name des Ziels; Suchmuster (Wildcards) sind erlaubt. Falls kein
absoluter Pfad angegeben ist, wird angenommen, dass sich das Ziel
in %A_WorkingDir%
befindet. Für eine einfache Verschiebung - ohne Umbenennung - geben Sie
nur den Ordnernamen an wie in den folgenden beiden - funktionsmäßig
identischen - Beispielen: FileMove, C:\*.txt, C:\Mein Ordner FileMove, C:\*.txt, C:\Mein Ordner\*.* |
| Flag |
(optional) Dieses Flag bestimmt, ob existierende Dateien überschrieben werden dürfen: 0 = (default) bestehende Dateien nicht überschreiben Dieser Parameter kann ein Ausdruck sein; der als Ergebnis True oder False hat (weil True und False international als 1 und 0 gewertet werden). |
ErrorLevel enthält die Anzahl der Dateien, die wegen eines Fehlers nicht verschoben werden konnten, andernfalls 0. Falls allerdings die Quelldatei ohne Suchmuster angegeben wurde und nicht existiert, wird ErrorLevel auf 0 gesetzt. Um diese Situation zu erkennen, wenden Sie vor dem Verschieben IfExist oder FileExist() auf die Quelldatei an.
Anders als bei FileCopy wird ein Verschieben der Datei auf sich selbst immer als erfolgreich angesehen, auch wenn der Überschreib-Modus nicht eingeschaltet ist.
FileMove verschiebt nur Dateien. Um stattdessen den Inhalt eines Ordner (Dateien und Unterordner) zu verschieben, siehe das Beispiel im nächsten Abschnitt. Benutzen Sie FileMoveDir, um einen einzelnen Ordner zu verschieben oder umzubenennen.
Auch wenn Fehler auftreten, wird diese Operation zu Ende geführt.
Das Verschieben von Dateien auf ein anderes Laufwerk dauert länger als das Verschieben innerhalb desselben Laufwerks, weil letzteres ähnlich einem Umbenennen und daher viel schneller ist.
FileCopy, FileCopyDir, FileMoveDir, FileDelete
FileMove, C:\Dokumente\Liste1.txt, D:\HauptBackup\ ; Verschiebt die Datei ohne umbenennen.
FileMove, C:\DateiVorher.txt, C:\DateiNachher.txt ; Benenne eine einzelne Datei um.
FileMove, C:\Ordner1\*.txt, D:\NeuerOrdner\*.bkp ; Verschiebt Dateien und benennt sie um (neue Extension).
; Das folgende Beispiel bewegt alle Dateien und Unterordner eines Ordners in einen anderen Ordner:
ErrorCount := MoveFilesAndFolders("C:\Mein Ordner\*.*", "D:\Ordner der alle Dateien & Unterordner erhalten soll ")
if ErrorCount <> 0
MsgBox %ErrorCount% Dateien/Ordner konnten nicht verschoben werden.
MoveFilesAndFolders(SourcePattern, DestPattern, Überschreiben = false)
; Verschiebt alle dem SourcePattern entsprechenden Dateien und Ordner in den Ordner namens DestPattern und
; liefert die Anzahl der Dateien/Ordner zurück, die nicht verschoben werden konnten. Diese Funktion erfordert v1.0.38+
; weil sie den Modus 2 von FileMoveDir verwendet.
{
if Überschreiben = 1
Überschreiben = 2 ; Siehe FileMoveDir für die Beschreibung des Modus 2 gegenüber Modus 1.
; Verschiebt zunächst alle Dateien (nicht die Ordner):
FileMove, %SourcePattern%, %DestPattern%, %Überschreiben%
ErrorCount := ErrorLevel
; Jetzt alle Ordner verschieben:
Loop, %SourcePattern%, 2 ; 2 bedeutet "nur Ordner".
{
FileMoveDir, %A_LoopFileFullPath%, %DestPattern%\%A_LoopFileName%, %Überschreiben%
ErrorCount += ErrorLevel
if ErrorLevel ; Jeden Problem-Ordner anzeigen.
MsgBox Could not move %A_LoopFileFullPath% into %DestPattern%.
}
return ErrorCount
}