Cómo cambiar el nombre de varios archivos en varias carpetas con un comando

11

Queremos cambiar el nombre de nuestros *.htmlarchivos *.phppero (lamentablemente) no tenemos suficiente conocimiento para hacerlo con un comando de cmd y / o un archivo por lotes.

El problema es que cada archivo está en una carpeta separada, y estoy hablando de más de 750 nombres de carpetas diferentes. El uso de comodines para los archivos que conozco es el, * pero el uso de comodines para carpetas es desconocido para mí. Probablemente necesitemos usar el FORcomando (en Símbolo del sistema), pero ahí estoy atascado.

La estructura de carpetas que utilizamos es:

carpeta-padre / carpeta - hijo / carpeta - nieto / archivo .html

por ejemplo:

  • games/A/game_name/file.html
  • games/B/game_name/file.html
  • games/C/game_name/file.html y así.

La carpeta principal es la misma para todos los archivos; las carpetas hijo y nieto son diferentes para la mayoría de los archivos.

Después de cambiar el nombre de estos archivos *.php, supongo que lo siguiente en la .htaccessredirección permanente.

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

Respuestas:

14

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

Esto funcionará en PowerShell. Si tiene Windows 7 o Vista, debería tenerlo instalado de manera predeterminada. Si tiene XP, puede descargarlo aquí .

soandos
fuente
Soandos, Chapeau !!!!!!!!!!!! Muchas gracias de este lado, funciona como un encanto.
Charles
@Charles, si esto resolvió su problema, haga clic en la marca de verificación, para que todos los que lo vean sepan que funcionó. Bienvenido a SuperUser.
soandos
3

En línea de comando:

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

Nota: Puede reemplazar *.htmlpor otro comodín, por ejemplo d:\www\*.html.

Nota 2: si usa el comando dentro de un archivo por lotes, reemplácelo %acon %%a(no me pregunte por qué)

ZEDA-NL
fuente
¿Por qué dices "delims=*"?  "delims="debe ser lo suficientemente bueno (es decir, ¿por qué se especifica un delimitador de *?
G-hombre dice 'Restablecer Mónica'
1

Flexible Renamer es un pequeño programa excelente que manejará varios tipos diferentes de renombrar búsquedas / reemplazos. Acepta expresiones regulares y tiene patrones comunes predefinidos. Además, le permite incluir elementos en subcarpetas u operar en las carpetas. También le ofrece una vista previa de todos los cambios que se realizarán. Lo he usado durante años, y lo recomiendo encarecidamente.

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

Aaron
fuente
0

TotalCommander: Buscar - Enviar al panel - Herramienta de cambio de nombre múltiple

Tejón perezoso
fuente