Как переименовать несколько файлов в нескольких папках с помощью одной команды
Мы хотим переименовать наш *.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