我需要创建一个脚本,该脚本将通过Windows 7计算机上的.bat文件运行.批处理文件将创建一个计划任务,该任务在星期日上午11点到晚上9点之间的随机时间运行.我目前正在使用这个命令,我知道它只在特定时间工作:
schtasks /create /tn "task" /tr c:\task.vbs /sc WEEKLY /d SUN /st 21:00:00 /ru ""
Run Code Online (Sandbox Code Playgroud)
我想随机化时间,以便我可以在所有400个系统中运行相同的批处理文件,并让每个系统在该范围内获得不同的时间,因此它们不会同时运行任务.我不在乎他们中的一些人是否有相同的时间,但我不希望所有400人都在同一时间内运行.一旦我有一个按预期工作的单个批处理文件,它将被推送到所有系统并运行一次以安排该任务.
基于在这里搜索其他答案,我尝试使用以下脚本,现在只是尝试生成一个随机小时,但我没有得到我需要的结果:
选项1)
set /a num=%random% * (21 - 11 + 1) / 32768 + 11
Run Code Online (Sandbox Code Playgroud)
该命令将在正确的范围内生成一个数字,但它不是真正随机的,它似乎是基于时钟或其他东西,因为如果我快速运行它几次,我得到相同的数字然后它随着时间递增通过,这不会工作.
选项2)
@echo off & setlocal EnableDelayedExpansion
for /L %%a in (1 1 20) do (
call:rand 11 21
echo !RAND_NUM!
) >> random2.txt
goto:EOF
REM The script ends at the above goto:EOF. The following are functions.
REM rand()
REM Input: %1 is min, %2 is max.
REM …Run Code Online (Sandbox Code Playgroud)