标题: [文件操作] 【已解决】求助批处理如何按文件数目分发文件到文件夹 [打印本页]
作者: compwj 时间: 2009-3-14 21:22 标题: 【已解决】求助批处理如何按文件数目分发文件到文件夹
假如我有文件夹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 编辑 ]
作者: namejm 时间: 2009-3-14 22:01
“21个文件夹(A1 A2 A3....A21) 前面10个里都是 50个文件 最后一个是10个文件”,不是有21个文件夹么?前10个+最后一个=11个,那还有10个跑哪里去了?如何确定哪个是最后一个?
1010、100、11、50、21……这些数字之间有什么关系?从你的描述来看,应该是有个算术公式在里面的,请你明确地给个说法,而不是让大家来帮你发现规律——既要大家帮你解答问题,还要顺带帮你总结规律,如果不是你太懒惰,就是解答的人太过热心,似乎热心人的热情都是有限度的吧?
作者: tireless 时间: 2009-3-14 22:16
- @echo off&setlocal enabledelayedexpansion
- set "fpath=D:\Program Files\A"
- for %%a in ("%fpath%") do set fname=%%~nxa
- set n=1
- set /p per=请输入每个文件夹的文件个数:
- for %%a in ("%fpath%\*") do (
- set /a per-=1,1/per 2>nul || set /a n+=1,per=%per%
- if not exist "%fpath%\%fname%!n!" md "%fpath%\%fname%!n!"
- move "%%a" "%fpath%\%fname%!n!"
- )
复制代码
[ 本帖最后由 tireless 于 2009-3-14 22:17 编辑 ]
作者: compwj 时间: 2009-3-14 22:18
不好意思 我描述的不清楚
我说下我遇到的情况
我有经常有几个文件夹 里面有上万个文件 一般都是同一种文件
我使用软件对他们处理
但是上万个文件 软件一次打开容易死机
我希望能用批处理实现 我设定一个数目 比如 100
批处理 会每 100个文件建立一个文件夹 并将100个文件移动进去
那么我会获得很多装有100个文件的文件夹 再用软件处理每个文件夹里的100个文件 就容易得多
应为我不太会批处理 希望高手帮帮忙
作者: compwj 时间: 2009-3-14 22:24
谢谢 三楼的 tireless 还有 管理员 namejm
这么快就有了 正解
作者: compwj 时间: 2009-3-15 00:51
再请教一下 能否实现动态监测
批处理 动态监测 文件夹A内文件
有一个文件 即建立一个子文件夹A1 并将文件 移到子文件夹A1
当子文件夹A1内 文件数目 达到设定值时 比如100时 建立下一个子文件夹A2 并将后面的文件 移动到A2
以此类推
如能告知 万分感谢
我使用一软件 不断向一文件夹内 复制文件 但似乎 xp对文件数量有限制
文件数一到17000的时候 就无法写入 故希望在 文件分发的基础上实现动态文件分发
作者: Batcher 时间: 2009-3-15 11:33 标题: 回复 6楼 的帖子
可以。
dir命令的倒数第二行就是文件个数统计。
动态检测用延时即可,具体代码可在本论坛搜索“延时”。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |