[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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


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


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

建立这个批处理的目的就是想让它自动移到相应数量的文件夹到其它目录中。

本帖最后由 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
复制代码

TOP

  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
复制代码

TOP

返回列表