在日常使用电脑时,经常需要对文件大小、数值进行批量判断或排序。比如清理磁盘空间前想看看哪些日志文件变得特别大,或者写个脚本自动判断某个备份文件是否超出预期体积。这时候,“批处理比较大小”就成了一个实用的小技能。
用批处理脚本判断文件大小
Windows 的批处理虽然看起来老旧,但处理这类任务依然够用。通过 for 命令获取文件大小,再结合 if 进行数值比较,就能实现自动化判断。
@echo off
setlocal enabledelayedexpansion
for %%f in (*.log) do (
set filesize=%%~zf
if !filesize! gtr 1048576 (
echo %%f 大小超过1MB
)
)
上面这段脚本会遍历当前目录下所有 .log 文件,检查其大小是否大于 1MB(即 1048576 字节),符合条件就提示出来。这种操作适合定期运行,快速发现异常增大的日志。
数值之间的大小比较写法
批处理中比较数字要用 if 配合特定符号:gtr 表示大于,lss 表示小于,geq 是大于等于,依此类推。注意不能直接用 > 或 < 符号,否则会被当成重定向操作。
set num1=85
set num2=92
if %num1% lss %num2% (
echo num1 比 num2 小
)
这个例子中,脚本会正确输出“num1 比 num2 小”。如果把变量换成从外部读取的配置值或计算结果,就可以做成更灵活的判断逻辑。
实际应用场景:自动归档大文件
假设你每天下载一堆素材,想让系统自动识别出大于 50MB 的视频文件,并移动到单独文件夹。可以写个定时任务配合如下脚本:
@echo off
if not exist "large_videos" mkdir large_videos
for %%v in (*.mp4) do (
set size=%%~zv
set /a limit=52428800
if !size! gtr !limit! (
move "%%v" "large_videos\"
)
)
运行后,所有超过 50MB 的 MP4 文件都会被移走。加上计划任务,基本就实现了无人值守管理。
这类操作不需要安装额外工具,也不依赖复杂环境,特别适合在老旧系统或服务器上跑轻量级维护任务。掌握这些细节,能让重复工作变得更轻松。