命令行可高效批量将文件名大写转小写:Windows用PowerShell一行命令、Linux/macOS用rename、老旧系统可用CMD调用PowerShell的批处理方案,均需提前备份。

你需要一次性把几十个甚至上百个文件名里的大写字母全改成小写,但又不想装新软件、不熟悉图形界面工具——这时候命令行就是最干净利落的解决方案。
Windows PowerShell 一行搞定
这方法无需安装任何额外组件,Win10/Win11 系统自带,且支持中文路径和带空格的文件名。
第一步:按住 Shift + 鼠标右键 在目标文件夹空白处,选择「在此处打开 PowerShell 窗口」。
第二步:粘贴执行这条命令:
Get-ChildItem * | Where-Object {!$_.PSIsContainer} | ForEach-Object { Rename-Item $_.FullName $_.Name.ToLower() }
执行后所有非文件夹项的名称立即转为纯小写。注意:该操作不可撤销,【务必提前备份原始文件】。如果只想处理特定类型(如仅 .txt),把第一处 * 改成 *.txt 即可。
Linux/macOS 终端用 rename 命令
Perl 版 rename 是目前主流发行版默认安装的版本,功能强、语法简洁,适合批量处理。
方法一:确认是否可用 Perl 版本
rename --version
若提示 command not found 或显示 File::Rename 版本号低于 1.10,需先安装:Ubuntu/Debian 运行 sudo apt install rename;CentOS/RHEL 运行 sudo yum install prename。
方法二:执行小写转换
rename "s/(.*)/\L$1/" *
这条命令会把当前目录下所有项目(含隐藏文件)的完整文件名转为小写。【注意:它不区分文件与文件夹,运行前请确保当前目录中没有需要保留大小写的子目录】。想跳过文件夹只改文件?加个判断:find . -maxdepth 1 -type f -exec rename "s/(.*)/\L$1/" {} +
Windows CMD 批处理兼容方案
适用于老旧系统或受限环境(如无 PowerShell 权限),但对特殊字符和长路径支持较弱。
新建一个文本文档,输入以下内容:
@echo offfor %%f in (*) do ( set "name=%%f" setlocal enabledelayedexpansion for /f "delims=" %%i in ("echo !name! ^| powershell -Command "$input.toLower()"") do ( ren "%%f" "%%i" ) endlocal)
保存为 .bat 文件(如 tolower.bat),放在目标文件夹内双击运行。此脚本依赖系统已安装 PowerShell,但自身用 CMD 启动,绕过策略限制。












