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

[文件操作] 【已解决】求助批处理如何按文件数目分发文件到文件夹

假如我有文件夹A 里面有 1010 个文件
我想使用批处理代码实现

设定文件数目x 假如是100
会自动在文件夹A下面建立11个文件夹(A1 A2 A3....A11) 前面10个里都是 100个文件 最后一个是10个文件

设定文件数目x 假如是50 会自动在文件夹A下面建立21个文件夹(A1 A2 A3....A21) 前面10个里都是 50个文件 最后一个是10个文件


就是按设定数目分发文件 有没有哪位高手 指点一下 不胜感激

[ 本帖最后由 compwj 于 2009-3-14 22:24 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

  “21个文件夹(A1 A2 A3....A21) 前面10个里都是 50个文件 最后一个是10个文件”,不是有21个文件夹么?前10个+最后一个=11个,那还有10个跑哪里去了?如何确定哪个是最后一个?

  1010、100、11、50、21……这些数字之间有什么关系?从你的描述来看,应该是有个算术公式在里面的,请你明确地给个说法,而不是让大家来帮你发现规律——既要大家帮你解答问题,还要顺带帮你总结规律,如果不是你太懒惰,就是解答的人太过热心,似乎热心人的热情都是有限度的吧?
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set "fpath=D:\Program Files\A"
  3. for %%a in ("%fpath%") do set fname=%%~nxa
  4. set n=1
  5. set /p per=请输入每个文件夹的文件个数:
  6. for %%a in ("%fpath%\*") do (
  7.   set /a per-=1,1/per 2>nul || set /a n+=1,per=%per%
  8.   if not exist "%fpath%\%fname%!n!" md "%fpath%\%fname%!n!"
  9.   move "%%a" "%fpath%\%fname%!n!"
  10. )
复制代码

[ 本帖最后由 tireless 于 2009-3-14 22:17 编辑 ]

TOP

不好意思 我描述的不清楚
我说下我遇到的情况
我有经常有几个文件夹 里面有上万个文件 一般都是同一种文件
我使用软件对他们处理
但是上万个文件 软件一次打开容易死机
我希望能用批处理实现 我设定一个数目 比如   100
批处理 会每 100个文件建立一个文件夹  并将100个文件移动进去
那么我会获得很多装有100个文件的文件夹  再用软件处理每个文件夹里的100个文件 就容易得多

应为我不太会批处理 希望高手帮帮忙

TOP

谢谢 三楼的 tireless  还有 管理员 namejm
这么快就有了 正解

TOP

再请教一下  能否实现动态监测
批处理 动态监测 文件夹A内文件
有一个文件 即建立一个子文件夹A1  并将文件 移到子文件夹A1
当子文件夹A1内 文件数目 达到设定值时 比如100时 建立下一个子文件夹A2  并将后面的文件 移动到A2
以此类推
如能告知 万分感谢

我使用一软件  不断向一文件夹内 复制文件  但似乎 xp对文件数量有限制
文件数一到17000的时候  就无法写入  故希望在 文件分发的基础上实现动态文件分发

TOP

回复 6楼 的帖子

可以。
dir命令的倒数第二行就是文件个数统计。
动态检测用延时即可,具体代码可在本论坛搜索“延时”。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表