windows - 运行具有随机等待时间的程序
问题描述
我正在尝试创建一个批处理文件来随机运行一个程序,但它不起作用如何使批处理文件工作?
set /a timeout=%RANDOM% * 21 / 32768 + 20
timeout %timeout%
notepad.exe
解决方案
您对问题的描述不清楚。它不工作”可能意味着任何事情。您发布的代码有效。并且完全按照您的要求执行:
set /a timeout=%RANDOM% * 21 / 32768 + 20
timeout %timeout%
notepad.exe
但是,根据您的评论,“此脚本仅每 20 秒运行一次,程序应随时随机执行”我假设您要循环代码,如下所示:
:loop
set /a timeout=%RANDOM% * 21 / 32768 + 20
timeout %timeout%
notepad.exe
goto :loop
然而,这很危险,如果您打开notepad
太多次(尤其是在低内存设备上),电脑可能会变得无响应。因此,请进行进程计数,并且仅在未满足进程数时才启动新实例:
:loop
set /a timeout=%RANDOM% * 21 / 32768 + 20 & timeout %timeout%
for /f "tokens=1,*" %%i in ('tasklist ^| find /I /C "notepad.exe"') do set var=%%i
if %var% LSS 10 start notepad.exe
goto :loop
notepad.exe
此示例将无限循环,但只有在运行 10 个或更少的实例时才会启动。这意味着最多允许 10 个记事本会话。后面的数字LSS
可以增加/减少。
推荐阅读
- database - MongoDB 来管理模型用户和模型图像之类的关系或其他数据库替代品(例如 neo4j)来处理此问题
- c# - 如何在 .Net Core 中的 DateTime 上使用 XmlIgnore?错误消息说 DateTime 不可序列化
- php - 从数字到字符串 PHP 的日期
- jetty - Embedded Jetty 在应用程序退出后继续运行
- reactjs - 如何以编程方式在当前 url/路径上加载不同的路径/组件?
- javascript - 如何将多个结果返回到数组中?
- scala - Scala 解析器组合器
- c# - 如何让面板和标签协同工作?
- python - 正则表达式:如果名称在“句子”中,则匹配该“句子”
- macros - 在自定义 Racket 语言中,如何定义递归宏?