标题: [文本处理] 批处理怎样自动建立文件夹并把图片文档自动归类? [打印本页]
作者: 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图标上
也可以做成右键菜单,参考以前的贴子- @echo off & cd /d "%~dp0"
- if not exist "%~1" ( echo 文件路径无效! & pause&exit )
- cd /d "%~dp1"
- REM 文件夹名称
- set "dir_name=专辑图片与介绍"
- REM 移动拓展名
- set "ext_list=*.doc *.pdf *.txt *.jpg *.png"
- dir /b /ad | findstr /vbe /C:"%dir_name%" >nul 2>nul && ( echo 含有其它文件夹! &pause&exit )
- mkdir "%dir_name%" >nul 2>nul
- REM 移动文件
- for %%i in (%ext_list%) do move /y "%%i" "%dir_name%\"
- pause&exit
复制代码
作者: zaqmlp 时间: 2022-4-27 17:13
本帖最后由 zaqmlp 于 2022-4-29 20:50 编辑
- @echo off&(if "%~1" equ "" goto :end)
- set "newfolder1=专辑图片与介绍"
- set "newfolder2=合辑单曲"
- if not exist "%~dp1" (echo;Path Error&goto :end) else (cd /d "%~dp1")
- for /f "delims=" %%a in ("%~dp1.") do (if /i "%%~nxa" equ "%newfolder1%" (goto :end))
- set n=&for /d %%a in (*) do (if /i "%%~nxa" neq "%newfolder1%" (set /a n+=1))
- if defined n (
- for %%a in (.wav .ape .flac .dts .dff .mp3) do (
- if exist *%%a (
- md "%newfolder2%" 2>nul
- move /y *%%a "%newfolder2%\" 2>nul
- )
- )
- )
- for %%a in (.jpg .jpeg .bmp .png .txt .pdf .doc) do (
- if exist *%%a (
- md "%newfolder1%" 2>nul
- move /y *%%a "%newfolder1%\" 2>nul
- )
- )
- :end
- pause
- 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
这句加在第五行下面- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |