中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何产生一个24小时制的随机的时间?
作者:
标题: 如何产生一个24小时制的随机的时间? 上一主题 | 下一主题
exzzz
初级用户

游手好闲 + 无所事事 ..



积分 194
发帖 167
注册 2007-4-30
状态 离线
『楼 主』:  如何产生一个24小时制的随机的时间?

如何编制一个批处理 rndtime.bat ,要求实现以下功能:

1、直接运行它,将生成一个随机时间变量 rtime,其格式为  HHMM,HH是小时,MM是分钟,其中小时是位于当前小时到23时之间。

2、若加参数 X Y,即运行 rndtime X Y后,将产生一个随机变量,其小时位于X到Y小时之间。(进阶要求,可以不考虑这个功能)

这个程序的目的,每天开机之后在后台运行,产生一个随机的时间,并根据这个时间添加一个任务。

这个时间是在开机之后的时间,这样可以保证该任务每天都能运行,而且每次启动的时间都不同,当时是用来上传ftp数据的,避免所有400个点同一时间登陆ftp造成拥堵。

一年前我写成功了,可是后来忘记了,而且当时写的有点复杂,请哪位高手写一个来讨论讨论?

2008-12-5 18:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Saber
初级用户





积分 26
发帖 14
注册 2008-7-6
状态 离线
『第 2 楼』:  


@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION
Set/A H=%Random%%%24
Set/A M=%Random%%%60
FOR %%i IN (M H) DO IF /I !%%i! LSS 10 Set %%i=0!%%i!
Set rtime=%H%:%M%
ECHO %rtime%
Pause
试试。

2008-12-5 19:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
exzzz
初级用户

游手好闲 + 无所事事 ..



积分 194
发帖 167
注册 2007-4-30
状态 离线
『第 3 楼』:  

2楼写的很好!

顺便请教一下 “!”的用法?我不会用这个。
另外, SET/A 我知道是运算,可是【H=%Random%%%24】是指什么?
用随机变量 %RANDOM% 乘以 %% 再乘以24么?那么中间的%%是指什么

%***%我只知道是引用变量。

2008-12-5 20:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Saber
初级用户





积分 26
发帖 14
注册 2008-7-6
状态 离线
『第 4 楼』:  

%Random% % 24
是%Random%对24求余(取模),即除以24后得到的余数。在这里的用处是为了保证随机生成的数小于24。
至于!,请参考这里:
http://www.cn-dos.net/forum/viewthread.php?tid=32638

[ Last edited by Saber on 2008-12-5 at 20:34 ]

2008-12-5 20:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: