一个连续随机运行的批处理脚本
在windows上不定时执行某些任务,比如访问某些网站之类,不定时进行。
基本过程就是建立一个系统定时任务,执行一段批处理代码。这个代码运行时:
1、删除原来的定时任务;
2、添加新的定时任务,新任务时间以当前时间为准,随机在二十分钟内启动;
3、执行必要的操作命令。
@echo off
rem 创建一个名为randomtask的任务,随机时间执行本批处理任务
SCHTASKS /delete /TN randomtask /F
rem SCHTASKS /Create /SC ONCE /ST 17:01 /TN randomtask /TR d:\tools\cmd\randomtask.bat
setlocal enabledelayedexpansion
:: 获取当前时间的小时和分钟
for /f "tokens=1,2 delims=:" %%a in ("%time%") do (
set "hour=%%a"
set "minute=%%b"
)
:: 去除分钟中的秒数部分(只保留前两位)
set "minute=!minute:~0,2!"
:: 生成0-20之间的随机分钟数
set /a "random_minutes=%random% %% 21"
:: 计算总分钟数
set /a "total_minutes=100!hour!%%100 * 60 + 100!minute!%%100 + random_minutes"
:: 计算新的小时和分钟,处理超过24小时的情况
set /a "new_hour=total_minutes / 60 %% 24"
set /a "new_minute=total_minutes %% 60"
:: 确保小时和分钟都是两位数格式
if !new_hour! lss 10 set "new_hour=0!new_hour!"
if !new_minute! lss 10 set "new_minute=0!new_minute!"
:: 输出结果
echo !new_hour!:!new_minute!
SCHTASKS /Create /SC ONCE /ST !new_hour!:!new_minute! /TN randomtask /TR "start /min d:\tools\cmd\randomtask.bat"
:: 此处执行所需的批处理命令
endlocal
浙公网安备 33010602011771号