如何在schtask命令中添加随机时间偏移量?

时间:2013-01-22 15:27:48

标签: windows batch-file schtasks.exe schtasks

我编写了一个简单的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或某些第三方工具的答案,我不打算用于兼容性,病毒扫描程序滋扰和下载要求等。

2 个答案:

答案 0 :(得分:1)

您可以使用%random%来生成开始时间。有一个非常有用的论坛讨论讨论如何执行此操作in detail

要在不弹出cmd窗口的情况下运行批处理文件,请尝试此(taken from here

start /min myfile.bat

答案 1 :(得分:1)

我发现这篇文章关于如何编辑%random%以返回更可接受的数字。它可能会对你有所帮助How to use random in BATCH script?