FileMove

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 | キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル | レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト

FileMove[編集]

ファイルを移動・リネームする。

FileMove, SourcePattern, DestPattern [, Flag]

Parameters[編集]

引数名 説明
SourcePattern ファイル名もしくはワイルドカード。
相対パスで指定した場合は、%A_WorkingDir%を基準としたパスとなる。
DestPattern 移動後のファイル名もしくはワイルドカード。 相対パスで指定した場合は、%A_WorkingDir%を基準としたパスとなる。
Flag (オプション)ファイルが存在していた場合の処理設定、省略時は 0
0 同名のファイルが存在したときは移動しない。(デフォルト)
1 同名のファイルが存在したときに上書きを行う。

ErrorLevel[編集]

移動に失敗したファイルの数が格納される。それ以外の場合は 0となる。ファイルパターンに合致したファイルで移動失敗の数を数えることになるので、移動元を単一ファイル(非ワイルドカード)として指定し、かつそのファイルが存在しない場合でも、ErrorLevel0となる。このような状況は、IfExist または FileExist() で事前存在確認をすることで同定することが出来る。

FileCopy とは異なり、上書きフラグが無効であったとしても、自分自身への移動は常に成功とみなされる。

AHKL [L55+] 削除対象ファイルが見つかった場合は A_LastError0となる。見つからない場合は、直前の失敗の直後に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
}