标题: [文件操作] 使循环两个批处理自动以固定的间隔时间启动 [打印本页]
作者: andsoabc 时间: 2021-5-27 17:47 标题: 使循环两个批处理自动以固定的间隔时间启动
本帖最后由 andsoabc 于 2021-5-28 19:06 编辑
有四组批命令,
第一组:a1,a2,a3,a4
第一组:a5,a6,a7,a8
第一组:a9,a10,a11,a12
第一组:a13,a14,a15,a16
1、以各组为步骤循环运行
2、各组的批处理是同时运行的,第一组同时启动后,过一小时启动第二组,再过一个小时启动第三组,再过一个小时启动第四组,最后a1~16同时在运行。
3、上一轮的第一组完成后马上重新开始运行第一组,过一个小时运行第二组(此时有可能第二组的上一轮还没结束,那么需要等待上一轮的第二组结束),再过一个小时启动第三组(此时有可能第三组的上一轮还没结束,那么需要等待上一轮的第三组结束),再过一个小时启动第四组(此时有可能第四组的上一轮还没结束,那么需要等待上一轮的第四组结束)
4、各批处理在同一时间只能运行一个批处理,最多a1~16个同时在运行
5、各批命令运行结束的时间都不确定
6、一个批处理运行时间在6个小时以上
问题:怎样让各组能够以固定的间隔时间开始(主要需要解决的问题是第二点)
批处理:a.bat
echo (a)start %date% %time% >>D:\task\a.txt
start a1.bat
start a2.bat
start a3.bat
start a4.bat
choice /t 3600 /d y
start a5.bat
start a6.bat
start a7.bat
start a8.bat
choice /t 3600 /d y
start a8.bat
start a10bat
start a11.bat
start a12.bat
choice /t 3600 /d y
start a13.bat
start a14.bat
start a15.bat
start a16.bat
echo (a)end %date% %time% >>D:\task\a.txt
exit
批处理a1.bat
echo (a1)start %date% %time% >>D:\task\a1.txt
a.exe
echo (a1)end %date% %time% >>D:\task\a1.txt
exit
批处理a2.bat
echo (a2)start %date% %time% >>D:\task\a2.txt
a.exe
echo (a2)end %date% %time% >>D:\task\a2.txt
exit
批处理a3.bat
echo (a3)start %date% %time% >>D:\task\a3.txt
a.exe
echo (a3)end %date% %time% >>D:\task\a3.txt
exit
批处理a4.bat
echo (a4)start %date% %time% >>D:\task\a4.ltxt
a.exe
echo (a4)end %date% %time% >>D:\task\a4.txt
exit
批处理a5.bat
批处理a6.bat
批处理a7.bat......
作者: hlzj88 时间: 2021-5-28 11:33
- @echo off&&setlocal enabledelayedexpansion
- set tt=0
-
- :ks
- rem 功能选择
- set /a tt+=1
- if %tt%==1 start "" 1.bat&&goto sj
- if %tt%==2 start "" 2.bat&&goto sj
- if %tt%==3 start "" 3.bat&&goto sj
- if %tt%==4 start "" 4.bat&&goto sj
-
- :sj
- rem 延时
- echo %tt%
- if %tt%==4 set tt=0
- ping /n 600 127.1>nul
- goto ks
复制代码
这样可以吗
作者: newswan 时间: 2021-5-28 13:49
- @echo off
- setlocal enabledelayedexpansion
-
- set g1=a1 a2 a3 a4
- set g2=a5 a6 a7 a8
- set g3=
- set g4=
-
- for %%a in (g1 g2) do (
- echo !%%a!
- for %%a in (!%%a!) do (
- echo %date% %time% start %%a >>D:\task\a.txt
- start /wait %%a.bat
- echo %date% %time% end %%a >>D:\task\a.txt
- )
- if not "%%a"=="g4" timeout /t 3600
- )
复制代码
作者: newswan 时间: 2021-5-28 13:56
a*.bat 不调用a.bat
要么直接 a1 调用 a2 ,a2 调用 a3
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |