Move – перемещение и переименование файлов и каталогов .
Команда MOVE используется для перемещения или переименования файлов и каталогов.
Формат командной строки:
Перемещение одного или более файлов:
MOVE [/Y | /-Y] [диск:][путь]имя_файла1[,…] назначение
Переименование папки:
MOVE [/Y | /-Y] [диск:][путь]имя_папки новое_имя_папки
Параметры командной строки:
[диск:][путь]имя_файла1 – Определяет местоположение файла или файлов, которые необходимо переместить.
Назначение – Определяет новое местоположение файла. Назначение может состоять из буквы диска (с последующим двоеточием), имени папки или их комбинации. При
перемещении только одного файла, можно указать и его новое имя, если хотите выполнить его одновременное переименование при перемещении.
[диск:][путь]имя_папки – Определяет папку, которую необходимо переименовать.
новое_имя_папки – Определяет новое имя папки.
/Y – Перезаписывать существующие файлы назначения без предупреждения.
/-Y – Предупреждать при перезаписи существующего файла назначения.
Ключ /Y может присутствовать в значении переменной среды окружения COPYCMD.
Оно может перекрываться ключом /-Y в командной строке. По умолчанию
используется предупреждение о перезаписи, если только команда MOVE не
выполняется как часть пакетного файла.
Примеры использования:
move /? – отобразить подсказку по использованию команды.
move folder1 folder2 – переименовать папку с именем folder1 в folder2 в текущем каталоге.
move E:testfolder1 E:testfolder2 – переименование с указанием абсолютных путей.
move C:file1.txt D: – переместить файл file1.txt с диска C: на диск D:
move c:testfile1.txt D:folder2file2.txt – перенести файл file1.txt из каталога
test диска C: в каталог folder2 диска D: под именем file2.txt
move C:Folder1*.* D:Folder2 – переместить все файлы из каталога Folder1 диска C: в каталог Folder2 диска D:
Реализация в ОС Windows данной команды не позволяет перемещать папки на другие логические диски.
move C:folder1 C:folder2folder3folder1 – переместить каталог folder1 из корня диска C: в подкаталог folder2folder3
При перемещении папки в несуществующий каталог он не будет создан автоматически и команда завершится ошибкой.
Команда move не работает с файлами, имеющими атрибуты “скрытый ” и “системный”.
Выборка файлов
Для получения списка файлов я использую командлет Get-ChildItem. Он же gci, он же ls, он же Элла Кацнельбогенdir, а эта команда прекрасно знакома всем, кто написал хоть один батник.
Дискуссия
Я не ставил перед собой задачу описать на языке PowerShell эквиваленты всех функций массового переименования Total Commander. Думаю, что это вполне возможно, а степень успеха зависит лишь от вашего уровня владения PowerShell, .NET и гуглояндексом. Вопрос лишь в том, насколько это целесообразно.
Графический интерфейс TC понятнее, нагляднее и не требует специальной подготовки. Однако бывают ситуации, когда вы не сможете воспользоваться любимым инструментом. Например, его нет в системе, а установить нельзя, поскольку ПК изолирован от внешней среды или это запрещено политикой организации.
Кстати, в ближайших записях я познакомлю вас с некоторыми новыми возможностями платформы PowerShell 5.0, включенной в Windows 10.
Расскажите в комментариях, какую задачу вы в последний раз решали:
- с помощью PowerShell или другого скриптового языка
- средства для массового переименования в любимом файловом менеджере
Изменяем имена файлов
Рассмотрим самый простой случай: у нас есть n-ое количество изображений с ни о чём не говорящими названиями.
Приведём имена этих файлов к наглядному виду Picture (n), где Picture будет названием, а n — порядковым номером. Это можно легко сделать прямо в «Проводнике».
Выделяем все картинки, которые хотим переименовать. Чтобы сделать это быстро, используем комбинацию клавиш Ctrl A. Затем просто жмём F2 или кликаем правой кнопкой мыши на первом файле и выбираем «Переименовать». В качестве имени для выделенного изображения вводим слово Picture и нажимаем Enter.
Windows автоматически присвоит такое же имя всем последующим файлам и расставит все порядковые номера.
При необходимости вы можете отменить массовое переименование комбинацией клавиш Ctrl Z.
Если захотите переименовать группу папок в «Проводнике», то это можно сделать точно так же.
Изменяем расширения файлов
Допустим, у нас есть несколько текстовых документов, которые после двойного клика открываются блокнотом. Но нам нужно, чтобы по умолчанию они открывались браузером. Для этого придётся изменить их расширение с .txt на .html. Операции такого рода можно быстро выполнять с помощью командной строки.
Как использовать bulk rename utility
Надо признать, что неподготовленного пользователя может напугать внешний вид этого приложения, которое больше напоминает консоль сложного оборудования, нежели утилитки для смены имени нескольких файлов одновременно. Все жеж Bulk Rename Utility предлагает в буквальном смысле тонны различных опций, которые в PowerShell можно использовать лишь в том случае, если у вас хорошо прокачаны навыки текстовых команд консоли Windows.
С первого взгляда кажется, что здесь без поллитры не разобаться. Но на самом деле все не так уж и страшно.
Да, интерфейс у этой утилиты очень сложный, но ее прелесть в том, что все внесенные вами изменения сразу же отображаются в столбце предварительного просмотра. Благодаря этому вы можете в буквальном смысле изучать приложение «методом тыка» и смотреть, как тот или иной параметр влияет на именf файлов.
Как переименовать несколько файлов одновременно с помощью сторонних программ
PowerShell подойдет не каждому, поскольку не у всех есть желание изучать команды и принципы их строения. В этом случае на помощь спешат сторонние утилиты, которые предлагают переименовать несколько файлов одновременно с использованием графически понятных интерфейсов. Рассмотрим на примере Bulk Rename Utility.
Как переименовать файл в командной строке
Командная строка – мощный инструмент, который позволяет производить любые операции с файлами, хранящимися в системе. При работе через терминал зачастую возникает необходимость произвести базовые преобразования – переименовать документ или переместить его в другую директорию. Для этого используются соответствующие команды.
Инструкция
Переименование файлов
Командлет Rename-Item тоже обладает хорошо известным псевдонимом ren. С помощью параметра -NewName задается новое имя, а в фигурных скобках стоит выражение, задающее условия переименования
- $_.Name – для каждого переданного по конвейеру файла $_ изменяется полное имя .Name
- -Replace “.zip$”, “-дата.zip” – я слегка упростил конструкцию, написав дату словом, чтобы был понятен смысл аргументов оператора -Replace: ‘что ищем’, ‘на что меняем’. Здесь тонкость в том, что у -Replace первый аргумент — регулярное выражение, а не просто поиск текста. В регулярных выражениях точка означает любой символ, поэтому использование “.zip” чревато нежелательным переименованием, например, файла winzip-setup.exe.
- “-$(Get-Date -Format {yyyy-MM-dd}).zip” – подставляем мы все-таки текущую дату в формате 2021-09-04. Формат дат я уже разбирал, а здесь хочу обратить ваше внимание на другой фокус. Выражение (в данном случае – командлет) не получится вставить просто так в аргумент оператора, но его можно поместить между круглыми скобками такой конструкции $().
- -WhatIf – этот стандартный параметр в переводе означает «что будет, если». Когда он добавлен в команду, ее реального выполнения не происходит, а в консоль выводится результат того, что могло бы произойти без этого параметра. Другими словами, вы можете проверить команду у себя, не опасаясь, что все архивы переименуются 🙂
Переименование файлов методом «поиск / замена»
Через несколько минут у меня получился такой вариант:
Переименовать каталог по маске cmd
Команда ren
не допускает использование подстановочных символов. Задачу можно решить с помощью for
:
for /d %%d in (test*.*) do (
ren %%d test
)
Учтите, что этот код найдёт и попытается переименовать в test
все каталоги, чьё имя начинается с test
(и, в том числе, с ним совпадает). Если найденных каталогов будет много, переименуется только первый.
Примечание о блоках скриптов
Существует три типа блоков:
- Begin (начало) — выполняется один раз в самом начале, до перебора элементов
- Process (обработка) — выполняется для каждого элемента
- End (конец) — выполняется в самом конце перебора
Командлет Foreach-Object обрабатывает блоки особым образом. Если ему указать только один блок, он воспринимает его как Process. Если два, то первый будет Begin, а второй — Process (наш случай). Если все три, то поведение стандартное: Begin → Process → End.
Четыре способа группового переименования файлов в windows
Переименование через Проводник работает быстро, но недостаточно гибко. В PowerShell гибкости хоть отбавляй, но для новичка этот метод может оказаться пугающим. А если нужен мощный графический инструмент, придется использовать стороннюю программу.
Проводник
В Проводнике есть довольно неочевидный способ быстро переименовывать группы файлов. Для начала соберите все нужные файлы в одну папку. Переключитесь на вид «Таблица» (Details) и отсортируйте файлы в необходимом порядке – Проводник присваивает номера по списку начиная сверху.
Выделите все файлы, которые требуется переименовать, нажмите правой кнопкой мыши и выберите пункт «Переименовать» (Rename). Введите новое имя и нажмите [Enter].
Проводник добавит к этому имени номер для каждого файла. Удобный способ привести все файлы к одному знаменателю, хотя и не слишком гибкий.
Командная строка
В командной строке можно использовать команду rename или ren для массового переименования файлов. Можно задействовать групповой символ * для обозначения множества файлов разом.
Самый простой способ открыть окно командной строки в нужной папке – зажать [Shift], нажать на папке правой кнопкой мыши и выбрать «Открыть окно команд» (Open command window here).
Чаще всего командное переименование используют для изменения расширения у целой группы файлов – в Проводнике так сделать нельзя. Приведенная ниже команда, например, превращает все файлы .html в .txt:
ren *.html *.txt
Сама по себе команда не очень функциональная, но ее можно применять в сложных сценариях.
PowerShell
PowerShell предлагает гораздо больше возможностей переименования файлов в командной среде. С помощью PowerShell можно передать вывод одной команды (командлета, как это здесь называется) другой команде, точно так же, как в Linux и других UNIX-подобных системах.
Главные команды – это Dir для получения списка файлов в текущей папке и Rename-Item для переименования объекта (в данном случае файла). Достаточно передать вывод Dir команде Rename-Item – и готово.
После запуска PowerShell используйте команду cd для перехода в папку с нужными файлами. Лучше всего переложить все файлы в одну папку, чтобы не переименовать нечаянно лишнее.
Допустим, мы хотим заменить пробелы в именах файлов на подчеркивания.
Приведенная ниже команда выводит список файлов в текущей папке и передает его команде Rename-Item, а та заменяет все пробелы на подчеркивания.
Dir | Rename-Item –NewName { $_.name –replace “ “,”_” }
Можно заменить “ “ и “_” на другие символы, чтобы переименовать файлы по-другому.
Подробнее об использовании Rename-Item для выполнения более сложных операций можно прочитать в документации Microsoft.
Сторонние утилиты
Если требуется мощный инструмент для массового переименования файлов, а с командной строкой возиться не хочется, можно использовать сторонние утилиты, например Bulk Rename Utility. Правда, интерфейс у этого приложения довольно запутанный, поскольку дает массу возможностей, которые обычно достижимы только с использованием регулярных выражений и сложных команд.
После установки приложения найдите и выделите файлы для переименования.
Измените настройки в одной или нескольких панелях – и увидите предварительные результаты изменений в столбце «New Name» («Новое имя»). Допустим, мы хотим убрать все, кроме цифр, и оставить в именах картинок только номера. Можно задать в панели «Remove» («Убрать») удаление первых десяти символов и одного последнего.
После этого достаточно нажать кнопку «Rename» («Переименовать») для применения изменений.
А может быть, вы предпочитаете какое-нибудь другое приложение для массового переименования файлов? Расскажите в комментариях!
Автор: Chris Hoffman
Перевод SVET