Нужна помощь в написании скрипта? Close

Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

FileMove -Autohotkey

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

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 }
Автор перевода: YMP
Настоящее имя переводчика: Юрий Попов
Источник: http://www.script-coding.com/AutoHotkey/FileMove.html
Под редакцией ahk-wiki.ru от 21.08.19