标题: [文件操作] 【已解决】文件夹中是否可以批处理建文件夹将前17位相同名称的图片放在一起? [打印本页]
作者: 228630386 时间: 2024-10-18 20:56 标题: 【已解决】文件夹中是否可以批处理建文件夹将前17位相同名称的图片放在一起?
本帖最后由 228630386 于 2024-10-19 11:32 编辑
整个文件夹都是JPG图片,BA003022P010O23ECD.jpg、BA003022P010O23ECF.jpg、BA003022P010O23ECT.jpg、BA003022P010O23ECD.jpg、BA003022P010O23ECE.jpg,能否将前缀17位相同的图片,放在新建文件夹BA003022P010O23EC中,整个文件夹的图片都是这个规率,是否能用批处理操作,多级目前不同的文件夹都可以进行批量合并,不用一个个文件夹进去运行呢?
作者: Batcher 时间: 2024-10-18 22:23
回复 1# 228630386
请把你的“多级目前不同的文件夹”截图出来看看,我试试。
如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: aloha20200628 时间: 2024-10-18 23:23
本帖最后由 aloha20200628 于 2024-10-19 11:08 编辑
回复 1# 228630386
先给一个版本
以下代码存为 test.bat 运行,将当前目录下及其各子目录中符合匹配条件(须前缀17个字符相同)的目标文件 *.jpg (忽略单个文件)移入对应的新建子目录中...
- @echo off &setlocal &(dir /b/s/ad|sort /r &echo,%cd%)>"all.d"
- for /f "delims=" %%d in (all.d) do for %%F in ("%%d\*.jpg") do (
- set "nF=%%~nF" &setlocal enabledelayedexpansion &set "nF17=!nF:~,17!"
- for /f %%n in ('dir /b/a-d "%%d\!nF17!*%%~xF"^|find /c /v "" ') do if %%n gtr 1 (
- md "%%d\!nF17!"
- move /y "%%d\!nF17!*%%~xF" "%%d\!nF17!"
- ) 2>ul
- endlocal
- )
- del/q "all.d"&endlocal&pause&exit/b
复制代码
作者: qixiaobin0715 时间: 2024-10-19 09:01
本帖最后由 qixiaobin0715 于 2024-10-19 09:09 编辑
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /s /ad^|sort /r') do (
- cd /d "%%i"
- if exist "*.jpg" (
- for %%j in (*.jpg) do (
- set str=%%~nj
- set str=!str:~,17!
- if not exist "!str!" md "!str!"
- move "!str!*.jpg" "!str!\"
- )>nul 2>nul
- )
- )
- pause
复制代码
作者: 228630386 时间: 2024-10-19 11:30
回复 3# aloha20200628
测试了,多级目录也可以实现,非常感谢。
作者: 228630386 时间: 2024-10-19 11:31
回复 4# qixiaobin0715
运行后没有反应。
作者: 77七 时间: 2024-10-19 20:04
- @echo off
- cd /d "%~dp0"
- set m=17
- for /f "delims=" %%d in ('dir /b /s /ad') do (
- set f=%%d
- set d=%%~nxd
- for /f "delims=" %%i in ('2^>nul dir /b /a-d "%%d\*.jpg"') do (
- set n=%%~ni.
- setlocal enabledelayedexpansion
- if "!n:~%m%,1!" neq "" (
- if /i "!n:~0,%m%!" neq "!d!" (
- md "!f!\!n:~0,%m%!" 2>nul
- move "!f!\!n:~0,-1!%%~xi" "!f!\!n:~0,%m%!\"
- )
- )
- endlocal
- )
- )
- pause
复制代码
判断了文件名前17位是否与文件夹名相同,方便多次归入。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |