我编写了一个简单的autoupdater,我使用带有ftp命令的批处理文件首先下载“version”文件,并将文本与本地“version.txt”文件进行比较 - 如果版本不同,我继续在同一个批处理脚本中下载并安装更新。
那部分没问题,但是当我创建任务时(使用另一个在setup.exe安装程序中分发的批处理文件)因为我需要运行我的数百名非技术精明的用户 - 我想添加一个随机时间偏移到作业的开始时间,以便我没有所有终端在同一时间点击我的服务器进行更新。
SCHTASKS.EXE / CREATE / SC DAILY / ST 10:00 / TN“我的更新程序任务”/ TR“c:\ myupdater.bat”
我需要它与XP以及Vista +兼容,但大多数用户群都是XP。我怎么能把不同的时间比如10:05,10:10,10:00等正负10分钟到10点这样我不会同时被200个客户击中?
此外,是否可以在没有显示命令窗口的情况下启动作业?我已经看到使用vb脚本和cmdnow或某些第三方工具的答案,我不打算用于兼容性,病毒扫描程序滋扰和下载要求等。
答案 0 :(得分:1)
您可以使用%random%
来生成开始时间。有一个非常有用的论坛讨论讨论如何执行此操作in detail。
要在不弹出cmd窗口的情况下运行批处理文件,请尝试此(taken from here)
start /min myfile.bat
答案 1 :(得分:1)
我发现这篇文章关于如何编辑%random%以返回更可接受的数字。它可能会对你有所帮助How to use random in BATCH script?。