11

We want to rename our *.html files to *.php but (sadly enough) have not enough knowledge to do it with a cmd prompt command and/or batch file.

The problem is that each file is in separate folder – and I am talking about 750+ different folder names. Using wildcards for the files I know is the * but using also a wildcard for folders is unknown to me. We probably need to use the FOR command (in Command Prompt), but there I am stuck.

Folder structure we use is:

parent-folder/child-folder/grandchild-folder/file.html

for example:

  • games/A/game_name/file.html
  • games/B/game_name/file.html
  • games/C/game_name/file.html and so on.

The parent folder is the same for all files; the child & grandchild folders are different for most files.

After renaming these files to *.php I assume the following in the .htaccess will make a permanent redirect.

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

5 Answers 5

14

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

This will work in PowerShell.  If you have Windows 7 or Vista, you should have it installed by default.  If you are on XP you can download it here.

2
  • Soandos, Chapeau !!!!!!!!!!!! Many thanx from this side, works like a charm.
    – Charles
    Mar 21, 2012 at 11:31
  • @Charles, if this solved your problem, please click the check mark, so that everyone else that sees it will know it worked. Welcome to SuperUser.
    – soandos
    Mar 21, 2012 at 11:33
3

In command line:

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

Note: You can replace *.html for other wildcard, e.g. d:\www\*.html.

Note 2: If using the command within a batch file, replace %a with %%a (don't ask me why)

1
  • Why do you say "delims=*"?  "delims=" should be good enough (i.e., why do you specify a delimiter of *? Jan 31, 2016 at 1:34
2

Flexible Renamer is an excellent little program that will handle several different types of renaming searches/replaces. It accepts regular expressions, and has common patterns predefined. Additionally, it allows you to include items in subfolders, or operate on folders themselves. It also gives you a preview of all changes that will be made. I have used it for years, and highly recommend it.

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

0
2

Using forfiles, we can write a script, to rename files recursively in all subfolders.

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

Source: Batch script for renaming files in bulk

0

TotalCommander: Search - Send to Panel - Multi-Rename Tool

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .