5

我有成千上万个文件扩展名像这样的文件

3_bedroom_villas_in_chennai.html__201308050010_
3_bedroom_villas_in_chennai.html__201308080012_
3_bedroom_villas_in_chennai.html__201308100012_
3_bedroom_villas_in_chennai.html__201308110034_ and so on.....

一个目录里面。我想将所有这些更改为以下

3_bedroom_villas_in_chennai__201308050010_.html
3_bedroom_villas_in_chennai__201308080012_.html
3_bedroom_villas_in_chennai__201308100012_.html
3_bedroom_villas_in_chennai__201308110034_.html

当我尝试使用以下命令在 Windows 中执行此操作时

ren *.* *.html

我得到了以下

A duplicate file name exists, or the file
cannot be found.
A duplicate file name exists, or the file
cannot be found.
A duplicate file name exists, or the file
cannot be found.
A duplicate file name exists, or the file
cannot be found. and so on...

因为我知道它会尝试将所有内容更改为单个文件名,例如

3_bedroom_villas_in_chennai.html and so on... 

有什么方法可以在 Windows 或 linux 上做到这一点?

4

2 回答 2

8

Linux中:

ls | xargs -I % mv % %.html

ls命令输出通过管道传输到xargs,并且 xargs 将所有 % (之后mv)替换为来自的输入ls

此外,如果您想递归地遍历所有子目录,您可能需要使用:

find . -type f | xargs -I % mv % %.html

Windows中:

for /r %x in (*) do ren "%x" *.txt
于 2013-09-19T06:35:37.603 回答
1

使用重命名器

$ renamer --regex --find '(.*).html(.*)' --replace '$1$2.html' *

适用于 Windows、Mac 和 Linux。

于 2013-09-25T08:22:07.680 回答