11

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

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

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

parent-folder/child-folder/grandchild-folder/file.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 ответов5

14

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

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

2

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

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

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

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

1

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

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

1

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

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .