找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21858|回复: 14

[文本处理] 批处理怎样自动建立文件夹并把图片文档自动归类?

[复制链接]
发表于 2022-4-27 15:56:37 | 显示全部楼层 |阅读模式
[img][/img]

[img][/img]

各位大佬好!
描述:在用everthing的时候,搜索出很多jpg格式图片和文档,现在想直接在everthing上操作,遍历到图一的文件所在的文件夹中(图二的模样),自动建立个文件夹,自动命名“专辑图片与介绍”,并自动把jpg、png 图片格式和txt、pdf、word文档格式自动移到“专辑图片与介绍”里。
要求:1、无法指定路径和文件夹的名称。要求能遍历。
         2、在自动建立“专辑图片与介绍”这个文件夹之前,判断文件所在的文件夹里是否有其他文件夹,如果没有就建立;如果有,就直接退出不建立。
发表于 2022-4-27 16:15:38 | 显示全部楼层
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
复制代码
发表于 2022-4-27 17:13:53 | 显示全部楼层
本帖最后由 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
复制代码
 楼主| 发表于 2022-4-27 17:18:46 | 显示全部楼层
回复 2# went

感谢went大佬!这个好用好用。
另外您的右键注册,简直是我的万金油,现在一直在用,感谢感谢!
麻烦您给我一个账号,买杯咖啡给您,表达心意哈。感谢感谢。
 楼主| 发表于 2022-4-27 17:19:51 | 显示全部楼层
回复 3# zaqmlp


    感谢大佬,给您继续买杯咖啡。感谢感谢。  
您这天天喝咖啡晚上能睡好觉吗,哈哈哈哈
发表于 2022-4-27 21:11:09 | 显示全部楼层
回复 4# duoduo200


    点我签名就可以
 楼主| 发表于 2022-4-28 08:52:29 | 显示全部楼层
回复 6# went


   已经支付咖啡一杯,感谢感谢
 楼主| 发表于 2022-4-28 12:00:06 | 显示全部楼层
回复 3# zaqmlp

[img][/img]


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

谢谢哈。
 楼主| 发表于 2022-4-28 12:00:54 | 显示全部楼层
回复 2# went


  麻烦大佬在给看看,楼上的问题。
发表于 2022-4-28 12:13:05 | 显示全部楼层
回复 8# duoduo200


    已修改
发表于 2022-4-28 22:30:55 | 显示全部楼层
回复 9# duoduo200


    这句加在第五行下面
  1. for /f "delims=" %%i in ("%cd%") do if /i "%%~nxi"=="%dir_name%" ( echo 跳过 %~1 &pause&exit )
复制代码
 楼主| 发表于 2022-4-29 18:20:24 | 显示全部楼层
回复 10# zaqmlp


    大佬,还有个问题,就是用evething时候只能选择15条处理,多一条右键里的bat就没有了。不知道是不是bat有处理极限还是设置问题,用其他bat就没有问题。
发表于 2022-4-29 19:43:56 | 显示全部楼层
回复 12# duoduo200

抱歉,无法复现你的问题
 楼主| 发表于 2022-4-29 20:26:00 | 显示全部楼层
回复 13# zaqmlp

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


    已修改
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 01:53 , Processed in 0.022659 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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