Board logo

标题: [日期时间] BAT代码怎样定时打开或关闭指定程序? [打印本页]

作者: 傲寒    时间: 2021-4-21 15:58     标题: BAT代码怎样定时打开或关闭指定程序?

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

以上内容全自动,不需要人看着。
作者: 傲寒    时间: 2021-4-21 16:27

  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
复制代码
这样子可以吗?
作者: yhcfsr    时间: 2021-4-21 17:04

  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
复制代码
没时间测试,您自己测试修改吧
作者: 1152    时间: 2021-4-21 19:19

本帖最后由 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
复制代码
要放在同一个目录
作者: 路过    时间: 2021-4-22 14:54

  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
复制代码

作者: Batcher    时间: 2021-4-25 23:07

回复 1# 傲寒


    那些在BAT脚本里面使用命令延时的方法太浪费系统资源。建议使用任务计划。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2