3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 1330|回复: 4
打印 上一主题 下一主题

[求助] 求帮写一个批量移动大量文件的脚本

[复制链接]

16

主题

291

帖子

647

积分

超级玩家

Rank: 5Rank: 5

贡献度
53
金元
4149
积分
647
精华
2
注册时间
2014-3-2
跳转到指定楼层
主题
发表于 2020-10-30 20:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用比特彗星下载了约80W个种子文件,都在一个文件夹,每次打开文件夹的时候相当的费尽。
因此想分散存放到多级文件夹中。
文件名是40个字符的文件BitTorrent使用的散列指,字符是16进制用的0-9和a-f。
我的目的是使用3级目录,然后每个目录大约200个文件。
举个例子,305b64a9eba15847f133d5696ac47f661c629c3f.torrent,存放到目录3下的目录0下目录5下面。
我目前的批处理如下:
<这个批处理能用,但是有问题。在运行中,非常消耗内存,一段时间内存就爆了。
因此我想求个能每移动约1000个文件就能暂停一会的脚本。
我自己弄了好几个方法都无法成功。


我当前的设想是用双循环,外层循环变量赋初值,进入内层循环,开始寻找文件并移动,变量自增。
接着内层循环判断变量是否超过1000,超过后转到外层循环,这时程序暂停一段时间。
然后变量重新赋初值,进入内层循环处理。


网上推荐的批处理延迟是直接调用ping命令,
<
如果只ping一次,延迟不太够,两次的话延迟又太高了,太浪费时间了。


我对批处理一窍不通,希望有高手帮一下。


回复

使用道具 举报

16

主题

291

帖子

647

积分

超级玩家

Rank: 5Rank: 5

贡献度
53
金元
4149
积分
647
精华
2
注册时间
2014-3-2
舒服的沙发
 楼主| 发表于 2020-11-2 22:22 | 只看该作者
我自己解决了,我最开始定义使用数字变量的时候出错了。
批处理中,设定每操作一万个文件,暂停一会。
我自己测试的时候,内存还是会慢慢增长,必须要中断一下。
最终的批处理如下:
<
回复 支持 反对

使用道具 举报

445

主题

2929

帖子

24万

积分

萝莉爱好者

Rank: 12Rank: 12Rank: 12

贡献度
1619
金元
2423200
积分
248796
精华
0
注册时间
2008-6-14

3DM MOD站(白银)Mod站荣誉勋章吾皇万睡

硬硬的板凳
发表于 2020-11-3 09:20 | 只看该作者
你这, 大佬霍茶
回复 支持 反对

使用道具 举报

16

主题

291

帖子

647

积分

超级玩家

Rank: 5Rank: 5

贡献度
53
金元
4149
积分
647
精华
2
注册时间
2014-3-2
冰凉的地板
 楼主| 发表于 2020-11-5 15:12 | 只看该作者
本帖最后由 逍遥小书生 于 2020-11-5 15:13 编辑
doya520 发表于 2020-11-3 09:20
你这, 大佬霍茶

,我知道你想要什么。目前100W+,那个种子市场真的很厉害,虽然下载的种子基本都没源了。
回复 支持 反对

使用道具 举报

16

主题

291

帖子

647

积分

超级玩家

Rank: 5Rank: 5

贡献度
53
金元
4149
积分
647
精华
2
注册时间
2014-3-2
5#
 楼主| 发表于 2020-11-5 15:13 | 只看该作者
最后,我用goto加循环解决了问题,使用goto循环不会导致内存暴涨。可惜的是整个bat还是有瑕疵,中间在把子目录下的文件移动到总目录的时候会报错,但是能继续运行。

<
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-2-13 00:11 , Processed in 0.106911 second(s), 14 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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