标题: 如何产生一个24小时制的随机的时间?
[打印本页]
作者: exzzz
时间: 2008-12-5 18:02
标题: 如何产生一个24小时制的随机的时间?
如何编制一个批处理 rndtime.bat ,要求实现以下功能:
1、直接运行它,将生成一个随机时间变量 rtime,其格式为 HHMM,HH是小时,MM是分钟,其中小时是位于当前小时到23时之间。
2、若加参数 X Y,即运行 rndtime X Y后,将产生一个随机变量,其小时位于X到Y小时之间。(进阶要求,可以不考虑这个功能)
这个程序的目的,每天开机之后在后台运行,产生一个随机的时间,并根据这个时间添加一个任务。
这个时间是在开机之后的时间,这样可以保证该任务每天都能运行,而且每次启动的时间都不同,当时是用来上传ftp数据的,避免所有400个点同一时间登陆ftp造成拥堵。
一年前我写成功了,可是后来忘记了,而且当时写的有点复杂,请哪位高手写一个来讨论讨论?
作者: Saber
时间: 2008-12-5 19:39
@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
试试。
作者: exzzz
时间: 2008-12-5 20:16
2楼写的很好!
顺便请教一下 “!”的用法?我不会用这个。
另外, SET/A 我知道是运算,可是【H=%Random%%%24】是指什么?
用随机变量 %RANDOM% 乘以 %% 再乘以24么?那么中间的%%是指什么
%***%我只知道是引用变量。
作者: Saber
时间: 2008-12-5 20:29
%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 ]