日常妙招屋
白蓝主题五 · 清爽阅读
首页  > 网络监控

用批处理文件批量重命名,轻松搞定成百上千个文件

你是不是也遇到过这种情况:从监控系统导出了一堆录像文件,名字全是类似 CAM01_20231001_120000.avi 这样的编号,时间一长根本分不清哪个是哪天录的。想按日期整理,但几百个文件一个个改太费劲。

其实 Windows 有个隐藏神器——批处理文件(.bat),不用装软件,几行命令就能帮你自动批量重命名。

先看个实际例子

比如你有一堆截图,都叫 screenshot_001.pngscreenshot_002.png……你想把它们改成 监控画面-1.png监控画面-2.png 这样更直观的名字。

打开记事本,输入以下内容:

@echo off
setlocal enabledelayedexpansion
set count=1
for %%f in (*.png) do (
    ren "%%f" "监控画面-!count!.png"
    set /a count+=1
)

保存为 rename.bat,然后把这个文件放到图片所在的文件夹里,双击运行。几秒钟后,所有文件就按新规则重命名好了。

如果文件是按时间排序的呢?

有时候导出的监控视频虽然名字乱,但修改时间是对的。这时候可以按时间顺序重命名。

还是用批处理,代码稍微改一下:

@echo off
setlocal enabledelayedexpansion
set count=1
for /f "delims=" %%f in ('dir /b /o:d *.avi') do (
    ren "%%f" "录像-!count!.avi"
    set /a count+=1
)

这里 /o:d 是按修改时间排序,最早的排前面,适合用来还原监控录像的时间线。

加个前缀避免覆盖

重命名最怕名字重复导致文件被覆盖。可以在新名字里加上日期前缀,比如:

ren "%%f" "20231001_监控-!count!.avi"

这样既清晰又安全,还能一眼看出是哪天处理的。

小技巧:只改部分名字

如果只想把所有 temp_ 开头的文件去掉这个前缀,可以用字符串替换:

@echo off
for %%f in (temp_*.txt) do (
    set "filename=%%f"
    set "newname=!filename:temp_=!"
    ren "%%f" "!newname!"
)

这招在清理临时文件时特别实用。

别再手动一个一个点了,写个 .bat 文件,喝口水的功夫就全搞定了。下次导出一堆监控日志时,试试这个方法,省时又省心。