来源是获取文件的属性里面修改时间为判断标准
因为这样子设定时间会准确一些
遍历目标文件并依次按年月分类
方案1
文件夹架构 2024年01月 2024年02月
[Shell] 纯文本查看 复制代码 @echo off
rem 批处理保存为ansi编码格式名称
rem 文件格式为【XX年XX月】
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b /a-d') do (
if "%%~xa" neq ".bat" (
for %%b in ("%%a") do (
set "fileModDate=%%~tb"
set "year=!fileModDate:~0,4!"
set "month=!fileModDate:~5,2!"
set "targetFolder=!year!年!month!月"
if not exist "!targetFolder!" (
md "!targetFolder!"
)
move "%%a" "!targetFolder!"
)
)
)
方案2
文件夹架构 一级 二级 文件夹
2024年----1月
----2月
[Shell] 纯文本查看 复制代码 @echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b /a-d') do (
if "%%~xa" neq ".bat" (
for %%b in ("%%a") do (
set "fileModDate=%%~tb"
set "year=!fileModDate:~0,4!"
set "month=!fileModDate:~5,2!"
set "targetFolder=!year!年\!month!月"
if not exist "!targetFolder!" (
md "!targetFolder!"
)
move "%%a" "!targetFolder!"
)
)
)
方案3
文件夹架构 一级 二级 三级 文件夹
2024年----1月----12日
----13日
----2月 ---09日
[Shell] 纯文本查看 复制代码 @echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b /a-d') do (
if "%%~xa" neq ".bat" (
for %%b in ("%%a") do (
set "fileModDate=%%~tb"
set "year=!fileModDate:~0,4!"
set "month=!fileModDate:~5,2!"
set "day=!fileModDate:~8,2!"
set "targetFolder=!year!年\!month!月\!day!日"
if not exist "!targetFolder!" (
md "!targetFolder!"
)
move "%%a" "!targetFolder!"
)
)
)
大家也可以以此代码自行修改精确到时间或者星期几
加个判断到上午下午或者晚上
有点太那啥鸡肋了,我就不整了
使用方法【把代码保存下来,粘贴到txt,将.txt后缀改为.bat后缀,放到自己需要处理的目录即可】
测试文件请做好备份!!
BAT成品下载下载链接:
成品BAT下载.txt
(41 Bytes, 下载次数: 22)
免费评分支持一下谢谢 |