吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 775|回复: 29
收起左侧

[学习记录] bat批处理之&按文件属性年月自动归类

  [复制链接]
zhengzhenhui945 发表于 2024-7-24 00:24
来源是获取文件的属性里面修改时间为判断标准
因为这样子设定时间会准确一些
遍历目标文件并依次按年月分类
方案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)
免费评分支持一下谢谢

免费评分

参与人数 6吾爱币 +9 热心值 +4 收起 理由
JiaXiaoShuai + 1 + 1 谢谢@Thanks!
红蓝黄 + 2 + 1 谢谢@Thanks!
lwzxy + 1 谢谢@Thanks!
Wapj_Wolf + 2 + 1 谢谢@Thanks!
yunshangtaiyang + 1 我很赞同!
luliucheng + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| zhengzhenhui945 发表于 2024-7-24 14:17
红蓝黄 发表于 2024-7-24 05:04
提取文件有两个问题:1、文件重名,可以重命名文件吗?2、提取完文件,把空文件夹删除

很好的建议,以下是提取文件后删除空文件夹,
遇到同名文件会在后缀从 _1 开始递增
请做好做好备份 。
[Shell] 纯文本查看 复制代码
@echo off

rem 提取文件到根目录
for /r "%cd%" %%f in (*) do (
    set "newName=%%~nf"
    set "ext=%%~xf"
    setlocal enabledelayedexpansion
    if exist "!newName!!ext!" (
        set /a count=1
        :loop
        if not exist "!newName!_!count!!ext!" (
            move "%%f" "!newName!_!count!!ext!"
            goto :next
        )
        set /a count+=1
        goto :loop
    )
    move "%%f" "!newName!!ext!"
    :next
    endlocal
)

rem 删除空文件夹
for /d %%d in (*) do (
    rd "%%d" 2>nul
)
be1ieveme 发表于 2024-7-24 00:40
shenhai666 发表于 2024-7-24 01:01
 楼主| zhengzhenhui945 发表于 2024-7-24 01:12
请务必备份了先测试文件!!!!!
以下代码用于提取根目录的所有文件
做好备份   在测试的文件夹内提取出文件再做归类
[Shell] 纯文本查看 复制代码
@echo off
for /f "delims=" %%a in ('dir /a-d /b /s ') do (move "%%~a" ./)
zerozaki1024 发表于 2024-7-24 02:01
学习新思路了,我自己也试试看。
红蓝黄 发表于 2024-7-24 05:04
zhengzhenhui945 发表于 2024-7-24 01:12
请务必备份了先测试文件!!!!!
以下代码用于提取根目录的所有文件
做好备份   在测试的文件夹内提取 ...

提取文件有两个问题:1、文件重名,可以重命名文件吗?2、提取完文件,把空文件夹删除
llyaomo 发表于 2024-7-24 08:27
红蓝黄 发表于 2024-7-24 05:04
提取文件有两个问题:1、文件重名,可以重命名文件吗?2、提取完文件,把空文件夹删除

我做了个py脚本的,和楼主的功能差不多,但是可以检查重名文件。https://www.123pan.com/s/lwtbVv-Kf6KA.html?提取码:LVCB
95zz 发表于 2024-7-24 08:30
超有用的
kangta520 发表于 2024-7-24 08:38
学习学习,谢谢分享
lzmomo 发表于 2024-7-24 08:43
在工作中很实用,如果可以搞定相同文件名就好了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表