有没有办法将文件批量重命名为小写?

有没有办法将文件批量重命名为小写?

我需要一种方法将文件夹和子文件夹中的所有文件重命名为小写。

我想知道是否有办法做到这一点仅有的Windows(XP 或 7)

答案1

进入目录并运行以下命令:

for /f "Tokens=*" %f in ('dir /l/b/a-d') do (rename "%f" "%f")

如果有人想修改/改进,请按照以下细分:

  • for /f- 每一行
  • "Tokens=*"- 处理每一行中的每个项目。
  • %f in (...)-%f是每个项目的变量名。
  • dir- 列出目录下的每个文件和子目录。
  • /l-(目录参数)使用小写。
  • /b-(目录参数)使用裸格式,仅文件/目录名称,没有大小,没有标题。
  • /a-d-(目录参数)不是列表目录a代表attribute-代表notd代表directory
  • rename "%f" "%f"- 使用文件自己的名称重命名文件,该名称实际上是通过dir命令和/l组合小写的。

答案2

从 Windows 7 开始,您可以使用电源外壳对于这些任务

Get-ChildItem "C:\path\to\folder" -recurse | 
  Where {-Not $_.PSIsContainer} | 
  Rename-Item -NewName {$_.FullName.ToLower()}

- 选择您的根文件夹
- 全部文件根文件夹和子文件夹内被重命名
- 文件夹名称被排除在外 Where {-Not $_.PSIsContainer} |

答案3

spacetornado 重命名器是一款 Windows 程序,可批量重命名大量文件。您可以搜索和替换文本、删除一定数量的字符、将大小写更改为小写、大写或首字母大写,以及将文本添加到每个文件名的开头或结尾(附加/前置)

在此处输入图片描述

答案4

已接受答案的“递归”版本(有效*)

for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"') do (for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g"))


第一个循环

for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"')

获取绝对路径当前目录内的所有目录(包括它):

C:\Foo>

  • 目录:\Foo\TO.txt

  • 目录:\Foo\Bar\下.txt

  • 目录:\Foo\Bar\Baz\案例.txt


第二圈

for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g")

获取所有文件名(或者文件目录名称(如果你取出开关/a-d)在每个绝对路径发现第一圈,并将这些文件的名称转换为小写。

  • 目录:\Foo\致.txt

  • 目录:\Foo\Bar\下.txt

  • 目录:\Foo\Bar\Baz\案例.txt


* 它需要两个循环,因为第二个参数必须rename文件名而不是绝对路径(与通过开关获得的一样/s)。

相关内容