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

[文件操作] 批处理怎样将文件按30个一组,分到子文件夹?

[复制链接]
发表于 2025-6-26 18:27:28 | 显示全部楼层 |阅读模式
文件夹里面有很多很多的jpg格式的文件,按名字顺序排列着。
如:
xxxx_000000001.jpg
xxxx_000000002.jpg
xxxx_000000003.jpg
.
.
.

然后将这些图片,按照30张一组,有顺序的,不是随机的,分别放置到各个文件夹里面,文件夹名称以001、002、003..... 的方式命名。

麻烦啦大神。
发表于 2025-6-26 20:25:44 | 显示全部楼层
回复 1# mm123321

以下代码存为 test.bat 运行,与 *.jpg 文件同目录

  1. @echo off &setlocal enabledelayedexpansion &dir /b/a-d *.jpg>"$.#"
  2. set/a "n=0,m=1" &set "d=001" &md "!d!" 2>nul
  3. for /f "delims=" %%F in ($.#) do set/a "n+=1" &move /y "%%F" "!d!" &if !n! equ 30 (set/a "n=0,m+=1" &set "m=00!m!" &set "d=!m:~-3!" &md "!d!" 2>nul)
  4. del /q "$.#" &pause&exit/b

复制代码
 楼主| 发表于 2025-6-26 22:09:26 | 显示全部楼层
回复 2# aloha20200628


    大佬有点问题,是120个文件一个文件夹了
发表于 2025-6-26 22:48:00 | 显示全部楼层
  1. @echo off
  2. cd /d "%~dp0"
  3. set n=-1
  4. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  5.         set /a "m=(n+=1)/30+1001"
  6.         set f=%%i
  7.         setlocal enabledelayedexpansion
  8.         if not exist "!m:~-3!" (
  9.                 md "!m:~-3!"
  10.         )
  11.         move "!f!" "!m:~-3!"
  12.         endlocal
  13. )
  14. pause
复制代码
 楼主| 发表于 2025-6-27 08:58:27 | 显示全部楼层
回复 4# 77七


    完美 谢谢大佬!
发表于 2025-6-27 11:15:31 | 显示全部楼层
回复 3# mm123321

又用2楼代码做完一次测试》放在 d:\jpg 图片目录(共包含155个 *.jpg 文件)中运行,结果生成 d:\jpg\001 - d:\jpg\006 共6个子目录,其中 001-005 每个子目录中均被移入30个图片文件,006 子目录中被移入剩余的5个图片文件。疑惑楼主是如何运行2楼代码的? ...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 07:05 , Processed in 0.018761 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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