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

[文件操作] [已解决]将一个文件夹里的文件平均分配到多个文件夹里

[复制链接]
发表于 2015-10-14 01:09:31 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2018-4-12 12:42 编辑

求平均分配文件的批处理脚本
比如有一个文件夹c:\1中有多个文本文件,然后有其他文件夹c:\2、c:\3、c:\4
能否有个批处理,执行后,c:\1中的文件能平均放置在c:\1、c:\2、c:\3、c:\4这4个文件夹中,使得4个文件夹内的文件基本相等(个数不够分的时候就让c:\1多1至3个文件也无所谓)

评分

参与人数 1PB +2 收起 理由
pcl_test + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-10-14 09:52:16 | 显示全部楼层
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set _1=c:\2
  4. set _2=c:\3
  5. set _3=c:\4
  6. for %%a in (c:\1\*.txt) do (
  7.   set /a n+=1
  8.   for /f %%i in ("_!n!") do copy "%%a" "!%%i!" /y
  9.   if !n!==3 set n=
  10. )
复制代码

评分

参与人数 1技术 +1 收起 理由
依山居 + 1 dd

查看全部评分

发表于 2015-10-14 13:06:03 | 显示全部楼层
  1. @echo off & setlocal enableDelayedExpansion
  2. for /f %%a in ('dir c:\1\*.txt ^| findstr /r "个文件.*字节$"') do set /a sum=%%a/4
  3. set "d=2"
  4. for /f %%b in ('dir /b c:\1\*.txt') do (
  5.     set /a "n+=1,t=sum-n>>31,d+=t&1,n=t&1|~t&n"
  6.     if !d! leq 4 move "c:\1\%%b" c:\!d!\
  7. )
  8. pause
复制代码
发表于 2015-10-14 13:53:49 | 显示全部楼层
本帖最后由 terse 于 2015-10-14 16:54 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1,1,4) do set "_%%i=c:\%%i"
  3. for /f "delims=" %%i in ('dir /b /a-d "!_1!\*.txt"^|find /v /c ""') do set /a len=%%i/4,n=0
  4. for /f "delims=" %%i in ('dir /b /a-d "!_1!\*.txt"') do (
  5.     set /a"m=4-n/len,n+=1,m+=^!m"
  6.     for %%j in (!m!) do move  "!_1!\%%i" "!_%%j!"
  7. )
  8. pause
复制代码
一直平均分 直到结束
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b /a-d "c:\1\*.*"') do (
  3.     set /a "m=n%%4+1,n+=1"
  4.     move  "c:\1\%%i" "c:\!m!"
  5. )
  6. pause
复制代码
 楼主| 发表于 2015-10-14 22:19:41 | 显示全部楼层
非常感谢,谢谢大家给出这么多答案
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 20:01 , Processed in 0.021377 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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