Come rinominare più file in più cartelle con un solo comando


11

Vogliamo rinominare i nostri *.htmlfile *.phpma (purtroppo) non abbiamo abbastanza conoscenze per farlo con un comando prompt cmd e / o file batch.

Il problema è che ogni file si trova in una cartella separata e sto parlando di oltre 750 nomi di cartelle diversi. L'uso di caratteri jolly per i file che conosco è il * ma l'utilizzo anche di un carattere jolly per le cartelle non mi è noto. Probabilmente abbiamo bisogno di usare il FORcomando (nel prompt dei comandi), ma lì sono bloccato.

La struttura delle cartelle che utilizziamo è:

genitore-cartella / bambini-cartella / nipotino-cartella / file di .html

per esempio:

  • games/A/game_name/file.html
  • games/B/game_name/file.html
  • games/C/game_name/file.html e così via.

La cartella principale è la stessa per tutti i file; le cartelle figlio e nipote sono diverse per la maggior parte dei file.

Dopo aver rinominato questi file in, *.phpsuppongo che quanto segue .htaccessfarà un reindirizzamento permanente.

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

Risposte:


14

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

Questo funzionerà in PowerShell. Se hai Windows 7 o Vista, dovresti averlo installato per impostazione predefinita. Se sei su XP puoi scaricarlo qui .


Soandos, Chapeau !!!!!!!!!!!! Molte grazie da questo lato, funziona come un fascino.
Charles

@Charles, se questo ha risolto il tuo problema, fai clic sul segno di spunta, in modo che tutti gli altri che lo vedano sappiano che ha funzionato. Benvenuto in SuperUser.
soandos,

3

Nella riga di comando:

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

Nota: è possibile sostituire *.htmlaltri caratteri jolly, ad es d:\www\*.html.

Nota 2: se si utilizza il comando all'interno di un file batch, sostituirlo %acon %%a(non chiedermi perché)


Perché dici "delims=*"?  "delims="dovrebbe essere abbastanza buono (cioè, perché si specifica un delimitatore di *?
G-Man dice 'Reinstate Monica'

1

Flexible Renamer è un eccellente programma che gestirà diversi tipi di rinominare ricerche / sostituzioni. Accetta espressioni regolari e ha schemi comuni predefiniti. Inoltre, consente di includere elementi nelle sottocartelle o di operare sulle cartelle stesse. Ti dà anche un'anteprima di tutte le modifiche che verranno apportate. L'ho usato per anni e lo consiglio vivamente.

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



0

TotalCommander: Cerca - Invia a pannello - Strumento multi-rinomina

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.