Board logo

标题: [文本处理] 批处理怎样自动建立文件夹并把图片文档自动归类? [打印本页]

作者: duoduo200    时间: 2022-4-27 15:56     标题: 批处理怎样自动建立文件夹并把图片文档自动归类?

[img][/img]

[img][/img]

各位大佬好!
描述:在用everthing的时候,搜索出很多jpg格式图片和文档,现在想直接在everthing上操作,遍历到图一的文件所在的文件夹中(图二的模样),自动建立个文件夹,自动命名“专辑图片与介绍”,并自动把jpg、png 图片格式和txt、pdf、word文档格式自动移到“专辑图片与介绍”里。
要求:1、无法指定路径和文件夹的名称。要求能遍历。
         2、在自动建立“专辑图片与介绍”这个文件夹之前,判断文件所在的文件夹里是否有其他文件夹,如果没有就建立;如果有,就直接退出不建立。
作者: went    时间: 2022-4-27 16:15

test.bat,拖动图片到bat图标上
也可以做成右键菜单,参考以前的贴子
  1. @echo off & cd /d "%~dp0"
  2. if not exist "%~1" ( echo 文件路径无效! & pause&exit )
  3. cd /d "%~dp1"
  4. REM 文件夹名称
  5. set "dir_name=专辑图片与介绍"
  6. REM 移动拓展名
  7. set "ext_list=*.doc *.pdf *.txt *.jpg *.png"
  8. dir /b /ad | findstr /vbe /C:"%dir_name%" >nul 2>nul && ( echo 含有其它文件夹! &pause&exit )
  9. mkdir "%dir_name%" >nul 2>nul
  10. REM 移动文件
  11. for %%i in (%ext_list%) do move /y "%%i" "%dir_name%\"
  12. pause&exit
复制代码

作者: zaqmlp    时间: 2022-4-27 17:13

本帖最后由 zaqmlp 于 2022-4-29 20:50 编辑
  1. @echo off&(if "%~1" equ "" goto :end)
  2. set "newfolder1=专辑图片与介绍"
  3. set "newfolder2=合辑单曲"
  4. if not exist "%~dp1" (echo;Path Error&goto :end) else (cd /d "%~dp1")
  5. for /f "delims=" %%a in ("%~dp1.") do (if /i "%%~nxa" equ "%newfolder1%" (goto :end))
  6. set n=&for /d %%a in (*) do (if /i "%%~nxa" neq "%newfolder1%" (set /a n+=1))
  7. if defined n (
  8.     for %%a in (.wav .ape .flac .dts .dff .mp3) do (
  9.         if exist *%%a (
  10.             md "%newfolder2%" 2>nul
  11.             move /y *%%a "%newfolder2%\" 2>nul
  12.         )
  13.     )
  14. )
  15. for %%a in (.jpg .jpeg .bmp .png .txt .pdf .doc) do (
  16.     if exist *%%a (
  17.         md "%newfolder1%" 2>nul
  18.         move /y *%%a "%newfolder1%\" 2>nul
  19.     )
  20. )
  21. :end
  22. pause
  23. exit
复制代码

作者: duoduo200    时间: 2022-4-27 17:18

回复 2# went

感谢went大佬!这个好用好用。
另外您的右键注册,简直是我的万金油,现在一直在用,感谢感谢!
麻烦您给我一个账号,买杯咖啡给您,表达心意哈。感谢感谢。
作者: duoduo200    时间: 2022-4-27 17:19

回复 3# zaqmlp


    感谢大佬,给您继续买杯咖啡。感谢感谢。  
您这天天喝咖啡晚上能睡好觉吗,哈哈哈哈
作者: went    时间: 2022-4-27 21:11

回复 4# duoduo200


    点我签名就可以
作者: duoduo200    时间: 2022-4-28 08:52

回复 6# went


   已经支付咖啡一杯,感谢感谢
作者: duoduo200    时间: 2022-4-28 12:00

回复 3# zaqmlp

[img][/img]


大佬,你写的代码很好用,但在实战中遇见一个问题,就是我们用everthing时候,是多选(如图一),然后会有一些图片移动了位置,被二次使用又自动建立了一个文件夹(如图二,在“专辑图片与介绍“文件夹下又建立一个“专辑图片与介绍“文件夹);   
所以能否在原有的代码上加一个判断代码:
如果已有“专辑图片与介绍“文件夹 就不用两次建立,如果没有建立“专辑图片与介绍“文件夹。

谢谢哈。
作者: duoduo200    时间: 2022-4-28 12:00

回复 2# went


  麻烦大佬在给看看,楼上的问题。
作者: zaqmlp    时间: 2022-4-28 12:13

回复 8# duoduo200


    已修改
作者: went    时间: 2022-4-28 22:30

回复 9# duoduo200


    这句加在第五行下面
  1. for /f "delims=" %%i in ("%cd%") do if /i "%%~nxi"=="%dir_name%" ( echo 跳过 %~1 &pause&exit )
复制代码

作者: duoduo200    时间: 2022-4-29 18:20

回复 10# zaqmlp


    大佬,还有个问题,就是用evething时候只能选择15条处理,多一条右键里的bat就没有了。不知道是不是bat有处理极限还是设置问题,用其他bat就没有问题。
作者: zaqmlp    时间: 2022-4-29 19:43

回复 12# duoduo200

抱歉,无法复现你的问题
作者: duoduo200    时间: 2022-4-29 20:26

回复 13# zaqmlp

[img][/img]
    大佬,还得麻烦您,帮忙修改一下以上的代码,原本的需求是运行时如果当前文件里有文件夹存在,就退出运行。
    是否可以改成,判断时如果有文件夹时候,改为自动建立“合辑单曲’”文件夹,并自动把这些零散的音频文件自动归集进去。(音频文件格式包括、WAV、ape、flac、dts、dff、mp3))
作者: zaqmlp    时间: 2022-4-29 20:50

回复 14# duoduo200


    已修改




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2