用批处理监视进程
我想编写一个批处理文件,它应该是这样工作的:运行批处理,而在运行批处理的同时开启B程序。现在我想再实现就是,这个批处理文件在b程序运行后,不自动退出,而是继续监视b程序,...
我想编写一个批处理文件,它应该是这样工作的:运行批处理,而在运行批处理的同时开启B程序。
现在我想再实现就是,这个批处理文件在b程序运行后,不自动退出,而是继续监视b程序,当b程序的进程结束后,自动把重启b程序,并且监视进程的时候是否可以在后台监视。也就是不显示在桌面可见区域
请问我应该如何实现呢? 展开
现在我想再实现就是,这个批处理文件在b程序运行后,不自动退出,而是继续监视b程序,当b程序的进程结束后,自动把重启b程序,并且监视进程的时候是否可以在后台监视。也就是不显示在桌面可见区域
请问我应该如何实现呢? 展开
1个回答
展开全部
@ECHO OFF
@setlocal EnableDelayedExpansion
@MODE CON cols=40 lines=10
@TITLE 程序保镖
SET AppName=未设置
SET AppPuth=未设置
SET /A Temp=0
SET parameterfileName=配置.ini
SET currentPath=%cd%
SET OPEN=ON
SET LOOP=YES
SET sleepTime=30
:INIT
IF EXIST %currentPath%\%parameterfileName% (
ECHO. √配置文件 已找到……
START /W %currentPath%\%parameterfileName%
PING -n 3 LOCALHOST>NUL
FOR /F "delims=[]; tokens=1,2,3" %%a IN (%parameterfileName%) DO (
IF %%a==程序名称 SET AppName=%%b
IF %%a==程序路径 SET AppPuth=%%b
)
PING -n 2 LOCALHOST>NUL 2>NUL
REM CHECK
IF EXIST !AppPuth! (
ECHO. √程序路径 检查通过
IF EXIST !AppPuth!\!AppName! (
ECHO. √程序名称 检查通过
IF !OPEN!==ON START " " "!AppPuth!\!AppName!"
PING -n 5 LOCALHOST>NUL 2>NUL
GOTO MAIN
) ELSE (
ECHO. ×程序名称 设置有误
SET AppName=未设置
GOTO INIT
)
) ELSE (
ECHO. ×程序路径 设置有误
SET AppPuth=未设置
GOTO INIT
)
) ELSE (
ECHO.[程序名称]QQ.exe;>%parameterfileName%
ECHO.[程序路径]D:\Program Files\Tencent\QQ\QQProtect\Bin;>>%parameterfileName%
GOTO INIT
)
:MAIN
CLS
ECHO. √开始扫描……
SET OPEN=ON
FOR /F %%a IN ( 'TASKLIST /NH /FI "USERNAME EQ Administrator"' ) DO (
IF %%a==!AppName! SET OPEN=OFF
)
IF !OPEN!==ON START " " "!AppPuth!\!AppName!"
ECHO. √完成扫描……
PING -n 5 LOCALHOST>NUL 2>NUL
IF !LOOP!==YES (
REM 倒计时开始
FOR /L %%i IN (%sleepTime%,-1,0) DO (
CLS
IF %%i LSS 10 TITLE 程序保镖 0%%i秒后再次扫描
IF %%i GEQ 10 TITLE 程序保镖 %%i秒后再次扫描
PING -n 2 localhost>NUL
)
REM 倒计时结束
GOTO MAIN
)
PING -n 2 localhost>NUL
EXIT>NUL
注
1.请将以上代码复制到文本文件中 保存后将文件后缀名改为BAT 使用
2. 关于批处理的窗口隐藏问题这里提供两种方案
1.)借助VBS脚本 辅助完成 具体代码如下
SET ws=WScript.CreateObject("WScript.shell")
ws.run "E:\Wastes\批处理.BAT",0
将上述代码复制并保存到文本文件中,并将后缀名改为VBS
2.)在第1步中保存的BAT文件上点右键>创建快捷方式> 然后在生成的快捷方式上点右键>属性>
>运行方式 改为 最小化 确定 运行时 点击快捷方式 即可 最小化运行
以上两种方案各有好处
1.)可以真正实现 后台静默运行。然而运行后 不再有可视化关闭按钮
关闭时 须使用任务管理器 或者 注销 或者 借助第三方软件 关闭
2.)如果只是不喜欢DOS的黑框 此方法显然够用了,简单易行。只是最小化运行 随时可以关闭
3. 运行本脚本会生成 配置.ini 的配置文件 里面是中文写的 应该不用多解释
希望可以帮到你^0^
@setlocal EnableDelayedExpansion
@MODE CON cols=40 lines=10
@TITLE 程序保镖
SET AppName=未设置
SET AppPuth=未设置
SET /A Temp=0
SET parameterfileName=配置.ini
SET currentPath=%cd%
SET OPEN=ON
SET LOOP=YES
SET sleepTime=30
:INIT
IF EXIST %currentPath%\%parameterfileName% (
ECHO. √配置文件 已找到……
START /W %currentPath%\%parameterfileName%
PING -n 3 LOCALHOST>NUL
FOR /F "delims=[]; tokens=1,2,3" %%a IN (%parameterfileName%) DO (
IF %%a==程序名称 SET AppName=%%b
IF %%a==程序路径 SET AppPuth=%%b
)
PING -n 2 LOCALHOST>NUL 2>NUL
REM CHECK
IF EXIST !AppPuth! (
ECHO. √程序路径 检查通过
IF EXIST !AppPuth!\!AppName! (
ECHO. √程序名称 检查通过
IF !OPEN!==ON START " " "!AppPuth!\!AppName!"
PING -n 5 LOCALHOST>NUL 2>NUL
GOTO MAIN
) ELSE (
ECHO. ×程序名称 设置有误
SET AppName=未设置
GOTO INIT
)
) ELSE (
ECHO. ×程序路径 设置有误
SET AppPuth=未设置
GOTO INIT
)
) ELSE (
ECHO.[程序名称]QQ.exe;>%parameterfileName%
ECHO.[程序路径]D:\Program Files\Tencent\QQ\QQProtect\Bin;>>%parameterfileName%
GOTO INIT
)
:MAIN
CLS
ECHO. √开始扫描……
SET OPEN=ON
FOR /F %%a IN ( 'TASKLIST /NH /FI "USERNAME EQ Administrator"' ) DO (
IF %%a==!AppName! SET OPEN=OFF
)
IF !OPEN!==ON START " " "!AppPuth!\!AppName!"
ECHO. √完成扫描……
PING -n 5 LOCALHOST>NUL 2>NUL
IF !LOOP!==YES (
REM 倒计时开始
FOR /L %%i IN (%sleepTime%,-1,0) DO (
CLS
IF %%i LSS 10 TITLE 程序保镖 0%%i秒后再次扫描
IF %%i GEQ 10 TITLE 程序保镖 %%i秒后再次扫描
PING -n 2 localhost>NUL
)
REM 倒计时结束
GOTO MAIN
)
PING -n 2 localhost>NUL
EXIT>NUL
注
1.请将以上代码复制到文本文件中 保存后将文件后缀名改为BAT 使用
2. 关于批处理的窗口隐藏问题这里提供两种方案
1.)借助VBS脚本 辅助完成 具体代码如下
SET ws=WScript.CreateObject("WScript.shell")
ws.run "E:\Wastes\批处理.BAT",0
将上述代码复制并保存到文本文件中,并将后缀名改为VBS
2.)在第1步中保存的BAT文件上点右键>创建快捷方式> 然后在生成的快捷方式上点右键>属性>
>运行方式 改为 最小化 确定 运行时 点击快捷方式 即可 最小化运行
以上两种方案各有好处
1.)可以真正实现 后台静默运行。然而运行后 不再有可视化关闭按钮
关闭时 须使用任务管理器 或者 注销 或者 借助第三方软件 关闭
2.)如果只是不喜欢DOS的黑框 此方法显然够用了,简单易行。只是最小化运行 随时可以关闭
3. 运行本脚本会生成 配置.ini 的配置文件 里面是中文写的 应该不用多解释
希望可以帮到你^0^
万山数据
2024-11-04 广告
2024-11-04 广告
实时数仓处理是我们北京万山数据科技有限公司数据处理能力的核心之一。它基于先进的流处理技术,能够实时捕获、处理和分析海量数据,确保数据的时效性和准确性。通过构建高效的实时数据管道,我们能够实现数据的即时入库与查询,为业务决策提供强有力的支持。...
点击进入详情页
本回答由万山数据提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询