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

11

Мы хотим переименовать наши *.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
Чарльз
источник

Ответы:

14

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

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

soandos
источник
Soandos, Chapeau !!!!!!!!!!!! Большое спасибо с этой стороны, работает как шарм.
Чарльз
@ Чарльз, если это решило вашу проблему, пожалуйста, нажмите на галочку, чтобы все остальные, кто видит это, знали, что это работает. Добро пожаловать в SuperUser.
soandos
3

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

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

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

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

Зед-NL
источник
Почему ты говоришь "delims=*"?  "delims="должно быть достаточно хорошим (то есть, почему вы указываете разделитель *?
G-Man говорит «Восстановить Монику»
1

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

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

Аарон
источник
0

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

Ленивый Барсук
источник