Как переименовать несколько файлов в нескольких папках с помощью одной команды

Мы хотим переименовать наш *.html файлы в *.php но (к сожалению) недостаточно знаний, чтобы сделать это с помощью командной строки cmd и / или командного файла.

Проблема в том, что каждый файл находится в отдельной папке - и я говорю о 750+ разных именах папок. Использование подстановочных знаков для файлов, которые я знаю, является * но использование подстановочного знака для папок мне неизвестно. Нам, вероятно, нужно использовать FOR команда (в командной строке), но там я застрял.

Структура папок, которую мы используем:

 папка parent / папка child / папка grandchild / файл.html 

например:

  • games/A/game_name/file.html
  • games/B/game_name/file.html
  • games/C/game_name/file.html и так далее.

Родительская папка одинакова для всех файлов; папки child & внучат отличаются для большинства файлов.

После переименования этих файлов в *.php Я предполагаю следующее в .htaccess сделает постоянный редирект.

RedirectMatch 301 (.*)\.html$ http://oursite.com$1.php

5 ответов

Решение

get-childItem -recurse | Where {$_.extension -eq ".html"} | rename-item -newname { $_.name -replace ".html",".php" }

Это будет работать в PowerShell. Если у вас Windows 7 или Vista, она должна быть установлена ​​по умолчанию. Если вы используете XP, вы можете скачать ее здесь.

В командной строке:

for /f "delims=*" %a in ('dir *.html /b /s') do ren "%a" *.php

Примечание: вы можете заменить *.html для другого подстановочного знака, например d:\www\*.html,

Примечание 2: если вы используете команду в командном файле, замените %a с %%a (не спрашивайте меня почему)

Используя forfiles, мы можем написать скрипт, рекурсивно переименовывать файлы во всех подпапках.

forfiles /S /M *.html /C "cmd /c rename @file @fname.php"   

Источник: пакетный скрипт для переименования файлов навалом

Flexible Renamer - отличная небольшая программа, которая будет обрабатывать несколько различных типов переименования поисков / замен. Он принимает регулярные выражения и имеет предопределенные общие шаблоны. Кроме того, он позволяет включать элементы в подпапки или работать с самими папками. Это также дает вам предварительный просмотр всех изменений, которые будут сделаны. Я использовал это в течение многих лет, и очень рекомендую это.

http://download.cnet.com/Flexible-Renamer/3000-2248_4-28799.html

TotalCommander: Поиск - Отправить на панель - Multi-Rename Tool

Другие вопросы по тегам