FileMove
実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 |
キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル |
レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト
FileMove[編集]
ファイルを移動・リネームする。
FileMove, SourcePattern, DestPattern [, Flag]
Parameters[編集]
引数名 | 説明 | |
---|---|---|
SourcePattern | ファイル名もしくはワイルドカード。 相対パスで指定した場合は、%A_WorkingDir%を基準としたパスとなる。 | |
DestPattern | 移動後のファイル名もしくはワイルドカード。 相対パスで指定した場合は、%A_WorkingDir%を基準としたパスとなる。 | |
Flag | (オプション)ファイルが存在していた場合の処理設定、省略時は 0 。
| |
0 | 同名のファイルが存在したときは移動しない。(デフォルト) | |
1 | 同名のファイルが存在したときに上書きを行う。 |
ErrorLevel[編集]
移動に失敗したファイルの数が格納される。それ以外の場合は 0
となる。ファイルパターンに合致したファイルで移動失敗の数を数えることになるので、移動元を単一ファイル(非ワイルドカード)として指定し、かつそのファイルが存在しない場合でも、ErrorLevel は 0
となる。このような状況は、IfExist または FileExist() で事前存在確認をすることで同定することが出来る。
FileCopy とは異なり、上書きフラグが無効であったとしても、自分自身への移動は常に成功とみなされる。
AHKL [L55+] 削除対象ファイルが見つかった場合は A_LastError は 0
となる。見つからない場合は、直前の失敗の直後にOSの GetLastError() 関数の戻り値を格納する。即ち、ファイルが見つからないかの原因を示すエラーコードが格納される。
AHKL [v1.1.04+] このコマンドは失敗した場合に例外をスローすることができる。詳細は実行時エラーを参照。
Remarks[編集]
ファイルをそのファイル自身へ移動しようとした場合は、必ず成功とみなされる。
異なるドライブ間での移動は、コピーと削除の動作によって行われる。
フォルダを移動するには、FileMoveDirを使用する。
Related[編集]
FileCopy, FileCopyDir, FileMoveDir, FileDelete
Example(s)[編集]
FileMove, C:\My Documents\List1.txt, D:\Main Backup\; Move the file without renaming it.
FileMove, C:\File Before.txt, C:\File After.txt; Rename a single file.
FileMove, C:\Folder1\*.txt, D:\New Folder\*.bkp; Move and rename files to a new extension.
; The following example moves all files and folders inside a folder to a different folder:
ErrorCount := MoveFilesAndFolders("C:\My Folder\*.*", "D:\Folder to receive all files & folders") If ErrorCount <> 0 MsgBox %ErrorCount% files/folders could not be moved. MoveFilesAndFolders(SourcePattern, DestinationFolder, DoOverwrite = false); Moves all files and folders matching SourcePattern into the folder named DestinationFolder and
; returns the number of files/folders that could not be moved. This function requires v1.0.38+
; because it uses FileMoveDir's mode 2.
{ If DoOverwrite = 1 DoOverwrite = 2; See FileMoveDir for description of mode 2 vs. 1.
; First move all the files (but not the folders):
FileMove, %SourcePattern%, %DestinationFolder%, %DoOverwrite% ErrorCount := ErrorLevel; Now move all the folders:
Loop, %SourcePattern%, 2; 2 means "retrieve folders only".
{ FileMoveDir, %A_LoopFileFullPath%, %DestinationFolder%\%A_LoopFileName%, %DoOverwrite% ErrorCount += ErrorLevel If ErrorLevel; Report each problem folder by name.
MsgBox Could not move %A_LoopFileFullPath% into %DestinationFolder%. } Return ErrorCount }