中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决] 产生全系列硬盘序列号
作者:
标题: [已解决] 产生全系列硬盘序列号 上一主题 | 下一主题
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『楼 主』:  [已解决] 产生全系列硬盘序列号

现在想编个批处理,要求生成 0000-0000 至 FFFF-FFFF。
但在生成的过程中,每生成一个就要暂停,请问如何编写?

产生的个数是否8的8次方=16777216个?

如果将此个数分成十六份,让十六每台电脑分摊运行,批处理该如何写呢?

[ Last edited by chishingchan on 2008-7-18 at 10:17 AM ]

2008-7-8 13:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 2 楼』:  

8的8次方这个数是错的。
应该是FFFFFFFF的十进制数:4294967295个数。

产生的效果如下:

0000-0000
请按任意键继续. . .
0000-0001
请按任意键继续. . .
0000-0002
请按任意键继续. . .
.
.
0000-0009
请按任意键继续. . .
0000-000A
请按任意键继续. . .
.
.
0000-000F
请按任意键继续. . .
0000-0010
请按任意键继续. . .
.
.
.
FFFF-FFFF
请按任意键继续. . .

[ Last edited by chishingchan on 2008-7-8 at 09:42 PM ]

2008-7-8 21:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  

很简单……
@echo off
set list%=0 1 2 3 4 5 6 7 8 9 A B C D E F

for %%a in (%list%) do (
  for %%b in (%list%) do (
    for %%c in (%list%) do (
      for %%d in (%list%) do (
        for %%e in (%list%) do (
          for %%f in (%list%) do (
            for %%g in (%list%) do (
              for %%h in (%list%) do (
                echo.%%a%%b%%c%%d-%%e%%f%%g%%h&pause
)
  )
    )
      )
    )
  )
)
  )
)
[ Last edited by lxmxn on 2008-7-8 at 11:01 PM ]

2008-7-8 22:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 4 楼』:  

谢谢!正解。
不明白的地方:list%=

因为序列号太多,所以想分开若干台电脑运行,每台运行不同的部分,请问如何修改呢?

[ Last edited by chishingchan on 2008-7-9 at 10:36 PM ]

2008-7-9 22:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  

这个要看你分成几台电脑运行了,可以将最外层的循环拆分成8个或者十六个,分别给8或者16台机器运行,每台只负责后面的7位。

2008-7-9 22:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by lxmxn at 2008-7-9 10:45 PM:
这个要看你分成几台电脑运行了,可以将最外层的循环拆分成8个或者十六个,分别给8或者16台机器运行,每台只负责后面的7位。

请教版主具体代码如何?

2008-7-14 13:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by chishingchan at 2008-7-14 13:27:


请教版主具体代码如何?

比如将任务分成16份,A主机负责处理Axxx-xxxx,那么代码就是:
@echo off
set list%=0 1 2 3 4 5 6 7 8 9 A B C D E F

for %%b in (%list%) do (
    for %%c in (%list%) do (
      for %%d in (%list%) do (
        for %%e in (%list%) do (
          for %%f in (%list%) do (
            for %%g in (%list%) do (
              for %%h in (%list%) do (
                echo.A%%b%%c%%d-%%e%%f%%g%%h&pause
)
  )
    )
      )
    )
  )
)
  )


2008-7-14 13:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 8 楼』:  

谢谢!

2008-7-18 10:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: