FileMove


Verschiebt eine oder mehrere Dateien oder benennt sie um.

FileMove, SourcePattern, DestPattern [, Flag]

Parameter

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
1 = bestehende Dateien ü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

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.

Bemerkungen

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.

Siehe auch

FileCopy, FileCopyDir, FileMoveDir, FileDelete

Beispiele

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
}