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
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.

  • Soandos, Chapeau !!!!!!!!!!!! Many thanx from this side, works like a charm. – Charles Mar 21 '12 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 '12 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)

  • Why do you say "delims=*"?  "delims=" should be good enough (i.e., why do you specify a delimiter of *? – G-Man Jan 31 '16 at 1:34
1

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

1

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.