如何使用一个命令重命名多个文件夹中的多个文件


11

我们想将*.html文件重命名为,*.php但(足够可惜)没有足够的知识来使用cmd提示命令和/或批处理文件来做到这一点。

问题在于每个文件都在单独的文件夹中–我所说的是750多个不同的文件夹名称。我对文件* 使用通配符是未知的,但对文件夹也使用通配符对我来说是未知的。我们可能需要使用FOR命令(在命令提示符中),但是我被卡住了。

我们使用的文件夹结构是:

父文件夹 / 子文件夹 / 孙子文件夹 / 文件 .html

例如:

  • games/A/game_name/file.html
  • games/B/game_name/file.html
  • games/C/game_name/file.html 等等。

所有文件的父文件夹都相同;对于大多数文件,子文件夹和孙文件夹都不同。

将这些文件重命名为*.php我之后,假定中的以下内容.htaccess将进行永久重定向。

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

Answers:


14

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

这将在PowerShell中工作。如果您使用Windows 7或Vista,则默认情况下应安装它。如果您使用的是XP,则可以在此处下载。


Soandos,Chapeau !!!!!!!!!!!! 从这一方面来看,许多thanx都像是一种魅力。
查尔斯

@Charles,如果这解决了您的问题,请单击复选标记,以便其他所有看到它的人都知道它起作用。欢迎来到超级用户。
soandos 2012年

3

在命令行中:

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

注意:您可以替换*.html其他通配符,例如d:\www\*.html

注意2:如果在批处理文件中使用命令,请替换%a%%a(不要问我为什么)


你为什么这么说"delims=*"?  "delims="应该足够好(即,为什么要指定*?的分隔符?
G-Man说'Resstate Monica'16'Jan

1

Flexible Renamer是一个出色的小程序,它将处理几种不同类型的重命名搜索/替换。它接受正则表达式,并具有预定义的通用模式。此外,它允许您将项目包括在子文件夹中,或对文件夹本身进行操作。它还为您提供了将要进行的所有更改的预览。我已经使用了多年,强烈推荐它。

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



0

TotalCommander:搜索-发送到面板-多重重命名工具

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.