Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "FileMove", в содержании - "File, Directory and Disk Management" - "FileMove", v1.0.46.12.

Ник переводчика: YMP.

Настоящее имя переводчика: Юрий Попов.

FileMove

Перемещает или переименовывает один или несколько файлов.

FileMove, SourcePattern, DestPattern [, Flag]

Параметры

SourcePattern Источник. Имя одиночного файла или групповой шаблон, такой как C:\Temp\*.tmp. Если не задан полный путь, SourcePattern ищется в папке, указанной в переменной A_WorkingDir.
DestPattern Приёмник. Имя или шаблон. Если не задан полный путь, считается находящимся в папке, указанной в переменной A_WorkingDir. При простом перемещении - с сохранением прежних имён файлов - задавайте только имя папки, как показано в этих, функционально идентичных, примерах:
FileMove, C:\*.txt, C:\My Folder
FileMove, C:\*.txt, C:\My Folder\*.*
Flag Флаг (необязателен). Этот флаг определяет, переписывать ли файлы, если они уже существуют.
0 = (по умолчанию) не переписывать существующие файлы
1 = переписывать
Этот параметр может быть выражением, даже таким, которое расценивается как true или false (поскольку эти значения хранятся в виде 1 и 0).

ErrorLevel

Равен числу файлов, которые не удалось переместить из-за ошибок, иначе равен 0. Однако, если источник - одиночный файл (не шаблон) и если он не существует, ErrorLevel устанавливается в 0. Чтобы отследить такую ситуацию, используйте IfExist или FileExist() для проверки существования файла-источника перед его перемещением.

В отличие от FileCopy, перемещение файла на него самого всегда считается успешным, даже если переписывание существующих файлов не разрешено.

Примечания

FileMove перемещает только файлы. Пример перемещения содержимого папки (всех её файлов и подпапок) смотрите ниже в разделе примеров. Для перемещения или переименования одиночной папки используйте команду FileMoveDir.

Операция перемещения продолжается, даже если происходят ошибки.

Хотя эта команда может перемещать файлы на другой раздел диска, эта операция займёт больше времени, чем перемещение в пределах одного раздела. Причина в том, что перемещение внутри одного раздела аналогично переименованию, поэтому и происходит намного быстрее.

Примеры

FileMove, C:\My Documents\List1.txt, D:\Main Backup\ ; Переместить файл без переименования.
FileMove, C:\File Before.txt, C:\File After.txt ; Переименовать одиночный файл.
FileMove, C:\Folder1\*.txt, D:\New Folder\*.bkp ; Переместить и изменить расширение. 

; Следующий пример перемещает все файлы и папки внутри папки в другую папку.
; Прим. переводчика: папка-приёмник уже должна существовать.
ErrorCount := MoveFilesAndFolders("C:\My Folder\*.*", "D:\Folder to receive all files & folders")
if ErrorCount <> 0
    MsgBox %ErrorCount% файлов/папок не удалось переместить.

MoveFilesAndFolders(SourcePattern, DestinationFolder, DoOverwrite = false)
; Перемещает все файлы и папки, совпадающие с заданными в SourcePattern, в папку, которая указана
; в DestinationFolder и возвращает количество файлов/папок, которые не удалось переместить.
; Эта функция работает, начиная с версии 1.0.38, т.к. использует режим 2 команды FileMoveDir.
{
    if DoOverwrite = 1
        DoOverwrite = 2 ; Различие режимов 2 и 1 см. в описании FileMoveDir.
    ; Сначала переместим все файлы (но не папки):
    FileMove, %SourcePattern%, %DestinationFolder%, %DoOverwrite%
    ErrorCount := ErrorLevel
    ; Теперь перемещаем папки:
    Loop, %SourcePattern%, 2 ; 2 означает "возвращать только папки".
    {
        FileMoveDir, %A_LoopFileFullPath%, %DestinationFolder%\%A_LoopFileName%, %DoOverwrite%
        ErrorCount += ErrorLevel
        if ErrorLevel ; Сообщать о каждой проблемной папке.
            MsgBox Не удалось переместить %A_LoopFileFullPath% в %DestinationFolder%.
    }
    return ErrorCount
}

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.