Windows下使用bat批处理文件实现进程守护

今天有个东西,想做个进程守护,保持持续连接,本来想用ProcessLasso,但是人家是收费的,并且是做进程管理的。
无奈,只能找找其他解决方案。

发现bat也可以实现进程守护,找了找,找到了一个:
windows下bat批处理实现守护进程(有日志) - jack_Meng - 博客园
windows下bat批处理实现守护进程(有日志) - jack_Meng - 博客园


写得非常全,但是我不需要日志的功能,所以将大神的bat批处理做了简化:

@echo off
title MyCustomKeeper
cls
::设置待执行软件完整路径(手动改成自己需守护的软件路径)
set runAppPath="D:\Program Files\Oray\SunLogin\SunloginClient\SunloginClient.exe"
::设置时间间隔,单位:秒
set _interval=10
::脚本自己赋值参数,不管
set runAppFolder=''
set _processName=''
set _processNameExt=''
if '%runAppPath%'=='' (goto end)

for %%a in (%runAppPath%) do (
set runAppFolder=%%~dpa
set _processName=%%~na
set _processNameExt=%%~nxa
)
::echo %runAppPath%
::echo %runAppFolder%
::echo %_processName%
::echo %_processNameExt%
goto checkstart

:checkstart
::检查进程是否还在
for /f "tokens=1" %%n in ('tasklist.exe ^| find /I "%_processNameExt%" ') do ( 
if '%%n'=='%_processNameExt%' (goto checkend)
)

:startApp
::重新启动进程
pushd %runAppFolder%
::显示启动信息
echo %date:~0,10% %time:~0,8%: %runAppPath%
::如果程序直接启动
start "" %runAppPath%
::如果程序需要参数,用下面的方法启动
start %runAppPath% -paramKey=paramValue
popd

:checkend
::循环检查
choice /t %_interval% /d y /n >nul
goto checkstart

:end
echo end.


我对窗口显示无所谓,如果不想显示窗口,可以参考以下文章:

怎么让bat运行不显示窗口-百度经验
https://jingyan.baidu.com/article/4ae03de3564d457efe9e6b2a.html

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Windows下,可以使用bat批处理脚本来批量检测远程端口。Telnet是一种远程终端连接服务,可以通过它来连接到远程主机的特定端口。以下是一个使用Telnet命令在批处理脚本中批量检测远程端口的例子: @echo off setlocal set ip_list=file_path\ip_list.txt set port=80 for /f %%i in (%ip_list%) do ( telnet %%i %port% | find "Connected" > nul if errorlevel 1 ( echo %%i:%port% is closed ) else ( echo %%i:%port% is open ) ) pause 在以上示例中,首先我们定义了要检测的IP列表文件的路径,即ip_list.txt文件,然后我们设定了要检测的端口号,此处设定为80端口。接着使用for循环读取ip_list.txt文件中的每个IP地址。 在每次循环中,我们使用telnet命令连接到远程主机的指定端口。如果端口成功连接,则表示端口是开放的,telnet命令的输出会包含"Connected"关键字。我们使用find命令查找telnet命令的输出中是否包含"Connected"关键字。 如果find命令找到了"Connected"关键字,则说明端口是开放的,我们将显示"IP地址:端口号 is open"的消息。否则,即端口未连接,我们将显示"IP地址:端口号 is closed"的消息。 最后,我们使用pause命令来暂停脚本的运行,以便我们可以查看检测结果。 需要注意的是,Telnet命令在默认情况下可能未启用,需要手动在Windows设置中启用Telnet客户端功能。此外,Telnet命令在Windows 10及更高版本中可能已被淘汰,可以考虑使用其他工具如ncat或PowerShell来代替Telnet命令进行远程端口检测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

willgon123

谢谢打赏,我将再接再厉!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值