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

[文件操作] 把指定数量的文件移动到其它目录的批处理怎样写呢?

[复制链接]
发表于 2013-4-27 10:47:17 | 显示全部楼层 |阅读模式
把指定数量的文件移动到其它目录的批处理怎样写呢?

如一个目录A中有500张图片(文件名是无规律的),文件夹:1,2,3,4,5,6,7,8,9,10


现在想建立一个批处理实现如下功能:
把这500张图片平均分到这:1-10的文件夹中。


应用:在某些网盘上传中限定了一次最多只能上传多少个文件,
如果文件比较多的时候,通常时先建立文件夹,把一定数量的放到文件夹中
再分别从各个文件夹中选择的。

建立这个批处理的目的就是想让它自动移到相应数量的文件夹到其它目录中。
发表于 2013-4-27 13:23:33 | 显示全部楼层
本帖最后由 xxpinqz 于 2013-4-27 13:42 编辑

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (*.jpg) do set /a total+=1
  3. set id=10
  4. set /a num=!total!/%id%,n=1
  5. for %%a in (*.jpg) do (
  6. if !num! gtr 0 (
  7.   if !n! leq %id% (
  8.     echo xcopy "%%a" .\!n!\
  9.     set /a l+=1,n=l/!num!+1
  10.     if !n! gtr %id% set num=0
  11.     )
  12.   ) else (
  13.     set /a odd+=1
  14.     echo xcopy "%%a" .\!odd!\
  15. ))
  16. echo,&echo 这是测试,结果正确则删除本行及第8,14行的echo&pause
复制代码
发表于 2013-4-27 14:11:49 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set Num=10
  3. ::Num为文件夹总数
  4. for %%a in (*.jpg) do set /a n+=1&set ".!n!=%%a"
  5. set /a k=n/Num,1/(n%%Num) 2>nul&&set /a k+=1
  6. ::k为每个文件夹中的文件总数
  7. for /l %%a in (1 1 !n!) do (
  8.    set /a m=%%a-1,m=m/k+1
  9.    :: m为文件夹名
  10.    echo move "!.%%a!" "!m!"
  11. )
  12. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 15:06 , Processed in 0.016768 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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