标题: [文件操作] 【已解决】批处理如何在特定时间段设置启动程序次数? [打印本页]
作者: chenlugen 时间: 2018-10-27 10:41 标题: 【已解决】批处理如何在特定时间段设置启动程序次数?
本帖最后由 chenlugen 于 2018-10-29 21:32 编辑
帮我看看下面代码要如何改才能达到效果:我想实现8:00~18:00之间任一时间打开此批处理,都是打开day.dps,在其他时间则关闭day.dps后打开night.dps,反之亦然;
要实现BAT不退出,实现监控时间,时间段一变循环执行,但在相同时间段(即BAT意外被人关了,而文件未被关闭时,重新打开BAT时)只打开一次相同的文件。。。不知道描述清楚了没有!!!谢谢了!!!- @echo off & title 根据时间段运行
- setlocal enabledelayedexpansion
- call :GetNowTime
-
- :RunPart1
- ::8:00~18:00
- start "" "ppt\day.dps"
-
- ::如果需要循环运行,请把下面的exit指令删除或用注释符进行屏蔽
- rem exit
- call :GetNowTime
-
- :RunPart2
- ::18:01~7:59
- start "" "ppt\night.dps"
-
- ::如果需要循环运行,请把下面的exit指令删除或用注释符进行屏蔽
- rem exit
- call :GetNowTime
-
- :GetNowTime
- set NowTime=%time:~,8%
- set NowTime=%NowTime: =0%
- set NowTime=%NowTime::=%
- if %NowTime% geq 080000 (
- if %NowTime% leq 180000 (
- goto RunPart1
- ) else (
- goto RunPart2
- )
- ) else (
- goto RunPart2
- )
- goto :eof
复制代码
作者: flashercs 时间: 2018-10-28 08:22
- @echo off & title 根据时间段运行
- setlocal enabledelayedexpansion
- :GetNowTime
- set NowTime=%time:~,8%
- set NowTime=%NowTime: =0%
- set NowTime=%NowTime::=%
- if %NowTime% geq 080000 (
- if %NowTime% leq 180000 (
- call :RunPart1
- ) else (
- call :RunPart2
- )
- ) else (
- call :RunPart2
- )
- REM 延迟10s
- timeout 10
- goto GetNowTime
- exit /b
-
- :RunPart1
- ::8:00~18:00
- tasklist /fi "imagename eq night.dps"|find /i "night.dps"&&taskkill /f /t /im "night.dps"
- tasklist /fi "imagename eq day.dps"|find /i "day.dps"||start "" "ppt\day.dps"
- exit /b
-
- :RunPart2
- ::18:01~7:59
- tasklist /fi "imagename eq day.dps"|find /i "day.dps"&&taskkill /f /t /im "day.dps"
- tasklist /fi "imagename eq night.dps"|find /i "night.dps"||start "" "ppt\night.dps"
- exit /b
复制代码
作者: chenlugen 时间: 2018-10-28 17:21
本帖最后由 chenlugen 于 2018-10-29 21:32 编辑
回复 2# flashercs
感谢大侠的热心回复,明天去科室试试,主要是科室外接个宣传显示屏,PPt格式的宣传,看有没有能改进的地方,能实现:
1、如在是上班时间8:00~17:30自动打开day.dps并放映PPt,如期间PPT被关闭,能检测到并自动重新放映;
2.上班时间8:00~17:30 如果多次打开批处理,如PPT已打开,则进入监控操作,即不重复打开,如没有则重新打开
3.在其它时间,则关闭日间PPT,切换夜间PPT,实现日间所需功能!!!
求大侠帮助!!!!
好像用taskkill杀进程WPP.exe(WPS软件)的方法关闭PPT,第二次打开PPT时会报文件自动恢复等错误提示,不能实现自动放映...
谢谢!!!!
作者: flashercs 时间: 2018-10-28 21:46
回复 3# chenlugen
dps 怎么正确关闭?按ESC吗?
作者: Batcher 时间: 2018-10-29 08:49
回复 3# chenlugen
Alt + F4 能正常关闭吗?
作者: chenlugen 时间: 2018-10-29 21:30
感谢各位大大的热情解答,基本解决了问题!!!谢谢!!!
作者: Batcher 时间: 2018-10-30 08:33
回复 6# chenlugen
用的什么方案?给大家分享一下吧
作者: chenlugen 时间: 2018-11-2 19:54
回复 7# Batcher
基本上能实现要的功能,但还不太完善,版主大大能帮忙优化下吗???
有些代码只是作调试用的!!!- :GetNowTime
- set NowTime=%time:~,8%
- set NowTime=%NowTime: =0%
- set NowTime=%NowTime::=%
- if %NowTime% geq 080000 (
- if %NowTime% leq 180000 (
- call :RunPart1
- ) else (
- call :RunPart2
- )
- ) else (
- call :RunPart2
- )
- REM 延迟5s
- choice /t 5 /d y /n >nul
- goto GetNowTime
- exit /b
-
- :RunPart1
- ::8:00~18:00
- REM tasklist /v>taskinfo.txt
- tasklist /v /fi "Windowtitle eq Microsoft PowerPoint - [night [兼容模式]]"|findstr /i /c:"Microsoft PowerPoint - [night [兼容模式]]">>"taskinfo.txt"||goto rp1
- taskkill /fi "Windowtitle eq Microsoft PowerPoint - [night [兼容模式]]" /t>nul
- echo 结束-Windowtitle eq Microsoft PowerPoint - [night [兼容模式]]进程成功!>>BatRuninfo.txt
- :rp1
- REM 延迟3s
- choice /t 3 /d y /n >nul
- tasklist /v /fi "Windowtitle eq Microsoft PowerPoint - [day [兼容模式]]"|findstr /i /c:"Microsoft PowerPoint - [day [兼容模式]] ">>"taskinfo.txt"&&goto rp2||goto rp3
- :rp2
- goto :eof
- rem exit /b
- :rp3
- start "" "ppt\day.ppt"
- echo 打开ppt-Windowtitle eq Microsoft PowerPoint - [night [兼容模式]]成功!>>BatRuninfo.txt
- REM 延迟5s
- choice /t 5 /d y /n >nul
- call res\keyf5.vbs
- exit /b
-
- :RunPart2
- ::18:01~7:59
- tasklist /v /fi "Windowtitle eq Microsoft PowerPoint - [day [兼容模式]]"|findstr /i /c:"Microsoft PowerPoint - [day [兼容模式]] ">>"taskinfo.txt"|| goto rp4
- taskkill /fi "Windowtitle eq Microsoft PowerPoint - [day [兼容模式]]" /t>nul
- echo 结束-Windowtitle eq Microsoft PowerPoint - [day [兼容模式]]进程成功!>>BatRuninfo.txt
- :rp4
- REM 延迟3s
- choice /t 3 /d y /n >nul
- tasklist /v /fi "Windowtitle eq Microsoft PowerPoint - [night [兼容模式]]"|findstr /i /c:"Microsoft PowerPoint - [night [兼容模式]]">>"taskinfo.txt"&&goto rp5||goto rp6
- :rp5
- exit /b
- :rp6
- echo 打开ppt-Windowtitle eq Microsoft PowerPoint - [night [兼容模式]]成功!>>BatRuninfo.txt
- REM 延迟10s
- choice /t 10 /d y /n >nul
- start "" "ppt\night.ppt"
- call res\keyf5.vbs
- exit /b
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |