如何批量重命名目录并补前导零使其统一为6位数字格式
数字命名文件夹补前导零到6位的实现方案
方案1:Windows 批处理(适用于CMD环境)
先将以下代码保存为.bat后缀的文件,放在要处理的文件夹根目录下执行即可,会自动处理当前目录下所有纯数字命名的文件夹:
@echo off setlocal enabledelayedexpansion :: 遍历当前目录下所有文件夹 for /d %%i in (*) do ( :: 仅处理纯数字命名的文件夹,避免误改其他目录 echo "%%i"|findstr "^\"[0-9]*\"$">nul && ( :: 前补6个0后取最后6位,自动生成6位带前导零的名称 set "dirName=000000%%i" set "dirName=!dirName:~-6!" ren "%%i" "!dirName!" ) ) endlocal
如果需要直接在CMD窗口中执行,不需要写脚本,将代码中的%%i全部替换为%i即可。
方案2:PowerShell 实现(更简洁)
直接在要处理的目录下打开PowerShell窗口,执行以下命令即可:
# 仅处理纯数字命名的文件夹,补前导零到6位 Get-ChildItem -Directory | Where-Object { $_.Name -match '^\d+$' } | Rename-Item -NewName { $_.Name.PadLeft(6,'0') }
注意事项
- 操作前建议先备份目标目录的所有文件夹,避免误操作导致数据问题
- 可以先把重命名命令替换为输出命令,确认修改结果符合预期后再执行实际重命名:批处理中把
ren "%%i" "!dirName!"改成echo 即将修改:%%i -> !dirName!;PowerShell中在Rename-Item后加-WhatIf参数即可预览修改结果 - 两种方案默认都不会修改非纯数字命名的文件夹,不会影响其他规则命名的目录
内容的提问来源于stack exchange,提问作者Poe
相关产品推荐
相关产品推荐

