[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[日期时间] BAT代码怎样定时打开或关闭指定程序?

实现:1.每5分钟打开一个程序(5个程序同名,只是文件夹不同)。
2.每12个小时自动关闭上方所有程序然后重新按照第1条方式打开。

以上内容全自动,不需要人看着。

回复 1# 傲寒


    那些在BAT脚本里面使用命令延时的方法太浪费系统资源。建议使用任务计划。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. set name=程序名
  3. set prg0=程序1路径
  4. set prg1=程序1路径
  5. set prg2=程序1路径
  6. set prg3=程序1路径
  7. set prg4=程序1路径
  8. if "%1"=="t2" (goto :t2) else (start /b %~s0 t2)
  9. setlocal enabledelayedexpansion
  10. set/a cnt=0
  11. :t1 每5分钟打开一个程序
  12. ping/n 300 127.0>nul
  13. set/a q=cnt %% 5
  14. start !prg%q%!
  15. goto :t1
  16. :t2 每12个小时关闭上方所有程序
  17. ping/n 43200 127.0>nul
  18. taskkill /f /im %name%
  19. goto :t2
复制代码

TOP

本帖最后由 1152 于 2021-4-22 20:46 编辑

https://pan.baidu.com/s/1HqgfAg7N6t2dGUbRxFnbZg
提取码:wsx3
因为ping不太准,所以使用Delay
程序内容:
  1. @echo off
  2. :i
  3. start 程序1路径
  4. Delay 30000>nul
  5. start 程序2路径
  6. Delay 30000>nul
  7. start 程序3路径
  8. Delay 30000>nul
  9. start 程序4路径
  10. Delay 30000>nul
  11. start 程序5路径
  12. Delay 4320000>nul
  13. taskkill /im 程序1名字 /f
  14. taskkill /im 程序2名字 /f
  15. taskkill /im 程序3名字 /f
  16. taskkill /im 程序4名字 /f
  17. taskkill /im 程序5名字 /f
  18. goto :i
复制代码
Delay.bat内容
  1. @echo off
  2. if %1==help echo.&echo 延迟&echo.&echo 语法:&echo Delay [ms]&echo ms=负数会无限循环&echo.&echo 示范:&echo Delay 1000&exit /b
  3. set a=0
  4. :i
  5. echo %a%ms/%1ms
  6. if %1==%a% exit /b
  7. if %1==%a% exit /b
  8. if %1==%a% exit /b
  9. set /a a=a+1
  10. goto :i
复制代码
要放在同一个目录

TOP

  1. @echo off
  2. set "progName=程序进程名.EXE"
  3. :main
  4. start "" "程序1路径"
  5. timeout /t 5 /NOBREAK
  6. start "" "程序2路径"
  7. timeout /t 5 /NOBREAK
  8. start "" "程序3路径"
  9. timeout /t 5 /NOBREAK
  10. start "" "程序4路径"
  11. timeout /t 5 /NOBREAK
  12. start "" "程序5路径"
  13. rem 等待12小时
  14. for /l %%a in (1,1,12) do timeout /t 3600 /NOBREAK
  15. for /f "delims= " %%a in ('tasklist^|findstr /ri "%progName%"') do taskkill /f /t /im "%%a"
  16. goto :main
复制代码
没时间测试,您自己测试修改吧
QQ 33892006

TOP

  1. @Echo off
  2. for /l %%a in (0 0) do (
  3.         ping -n 300 127.0.1
  4.         start "" 你的软件.exe
  5.         ping -n 600 127.0.1
  6.         start "" 你的软件2.exe
  7.         ping -n 900 127.0.1
  8.         start "" 你的软件3.exe
  9.         ping -n 1200 127.0.1
  10.         start "" 你的软件4.exe
  11.         ping -n 1500 127.0.1
  12.         start "" 你的软件5.exe
  13.         ping -n 43200 127.0.1
  14.         taskkill /im 你的软件.exe /f
  15.         ping -n 43200 127.0.1
  16.         taskkill /im 你的软件2.exe /f
  17.         ping -n 43200 127.0.1
  18.         taskkill /im 你的软件3.exe /f
  19.         ping -n 43200 127.0.1
  20.         taskkill /im 你的软件4.exe /f
  21.         ping -n 43200 127.0.1
  22.         taskkill /im 你的软件5.exe /f
  23. )>nul 2>nul
复制代码
这样子可以吗?

TOP

返回列表