如何重命名子目录中的文件?
有没有办法批量重命名子目录中的文件?
例如:
在包含目录和子目录的文件夹中将*.html
重命名为*.htm
。
Is there any way of batch renaming files in sub directories?
For example:
Rename *.html
to *.htm
in a folder which has directories and sub directories.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
Windows 命令提示符:(如果在批处理文件内,请将 %x 更改为 %%x)
这也适用于重命名文件的中间部分
Windows command prompt: (If inside a batch file, change %x to %%x)
This also works for renaming the middle of the files
如果你有 forfiles(我认为它是 Windows XP 和 2003 以及更新的东西附带的),你可以运行:
If you have forfiles (it comes with Windows XP and 2003 and newer stuff I think) you can run:
在Python中
In python
在 Bash 中,您可以执行以下操作:
In Bash, you could do the following:
我确信有一种更优雅的方式,但这是我脑海中浮现的第一件事:
I'm sure there's a more elegant way, but here's the first thing that popped in my head:
在Linux上,您可以使用'rename'命令批量重命名文件。
On Linux, you may use the 'rename' command to rename files in batch.
有一个非常强大的 forfiles 命令:
<代码> forfiles /? 向您提示该命令的功能。
在这种情况下,它可以像这样使用:
there is pretty powerfull forfiles command:
forfiles /?
gives u hint of what is possible with the command.in this case it can be used like:
Linux 上的 AWK。 对于第一个目录,这就是你的答案...通过在 dir_path 上递归调用 awk 进行推断,也许通过编写另一个 awk 在下面写入这个确切的 awk...等等。
AWK on Linux. For the first directory this is your answer... Extrapolate by recursively calling awk on dir_path perhaps by writing another awk which writes this exact awk below... and so on.
在 Unix 上,您可以使用 rnm:
或
说明:
-ns
:名称字符串(新名字)。/n/
是扩展为不带扩展名的文件名的名称字符串规则。-ss
:搜索字符串(正则表达式)。 搜索匹配的文件。-rs
:替换/search_regex/replace_part/modifier
形式的字符串-fo
:仅文件模式-dp
:目录深度(-1表示无限制)。On Unix, you can use rnm:
Or
Explanation:
-ns
: name string (new name)./n/
is a name string rule that expands to the filename without the extension.-ss
: search string (regex). Searches for files with match.-rs
: replace string of the form/search_regex/replace_part/modifier
-fo
: file only mode-dp
: depth of directory (-1 means unlimited).