吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 430|回复: 9
收起左侧

[求助] 批处理监测系统进程问题求助

[复制链接]
ZX0228 发表于 2024-5-3 11:41
求助在使用批处理监测 8个进程是否在运行过程中,在win7系统中运行时发现,petro-gsms-station-bus.exe petro-gsms-station-core.exe petro-gsms-station-iot.exe petro-gsms-station-monitor.exe petro-gsms-station-mysqld.exe这5给进程在在运行,但是监测结果却显示已停止运行。有没有大佬帮忙看看是什么原因? mysqld-nt.exe  EPS.exe  EPSServer.exe这三个进程状态监测就是正常的。
[Bash shell] 纯文本查看 复制代码
@echo off
setlocal enabledelayedexpansion
 
set "processList=petro-gsms-station-bus.exe  petro-gsms-station-core.exe  petro-gsms-station-iot.exe  petro-gsms-station-monitor.exe  petro-gsms-station-mysqld.exe  mysqld-nt.exe  EPS.exe  EPSServer.exe "
set "separator=-----------------------------"
 
:monitorLoop
for %%p in (%processList%) do (
    echo(
    echo 检查 %%p...
    tasklist /nh /fi "imagename eq %%p" | find /i "%%p" > nul
    if !errorlevel! equ 0 (
        echo %%p 正常运行.
    ) else (
        echo %%p 已停止运行.
    )
 
)
    echo !separator!
timeout /t 30 /nobreak > nul
goto monitorLoop
 
:end
echo 批处理监控结束.
endlocal

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

一剑飘零 发表于 2024-5-3 12:56
本帖最后由 一剑飘零 于 2024-5-3 13:01 编辑

删除,我回答的错误的。
QvQsuipian 发表于 2024-5-3 15:13
在for循环中引用变量时,需要使用!而不是%来引用循环变量。对于errorlevel,不使用!,因为它是在执行tasklist和find命令后由系统直接设置的。
[Bash shell] 纯文本查看 复制代码
@echo off  
setlocal  
  
set "processList=petro-gsms-station-bus.exe petro-gsms-station-core.exe petro-gsms-station-iot.exe petro-gsms-station-monitor.exe petro-gsms-station-mysqld.exe mysqld-nt.exe EPS.exe EPSServer.exe"  
set "separator=-----------------------------"  
  
:monitorLoop  
for %%p in (%processList%) do (  
    echo(  
    echo 检查 %%p...  
    tasklist /nh /fi "imagename eq %%p" | find /i "%%p" > nul  
    if %errorlevel% equ 0 (  
        echo %%p 正常运行.  
    ) else (  
        echo %%p 已停止运行.  
    )  
)  
echo %separator%  
timeout /t 30 /nobreak > nul  
goto monitorLoop  
  
:end  
echo 批处理监控结束.  
endlocal  
exit /b
 楼主| ZX0228 发表于 2024-5-4 09:39
QvQsuipian 发表于 2024-5-3 15:13
在for循环中引用变量时,需要使用!而不是%来引用循环变量。对于errorlevel,不使用!,因为它是在执行taskli ...

还是不行,所有服务都是正常的,只有后三个显示正常运行,其余5个都显示已停止运行
QvQsuipian 发表于 2024-5-5 00:24
ZX0228 发表于 2024-5-4 09:39
还是不行,所有服务都是正常的,只有后三个显示正常运行,其余5个都显示已停止运行

在cmd里tasklist /v一下看看进程名称是否与你在脚本中列出的名称完全匹配
 楼主| ZX0228 发表于 2024-5-5 10:08
QvQsuipian 发表于 2024-5-5 00:24
在cmd里tasklist /v一下看看进程名称是否与你在脚本中列出的名称完全匹配

匹配的,现在不知道和操作系统有没有关系,在win10 运行的时候是正常的,在win7运行那几个名字比较长的进程状态就不准确了
QvQsuipian 发表于 2024-5-5 16:14
ZX0228 发表于 2024-5-5 10:08
匹配的,现在不知道和操作系统有没有关系,在win10 运行的时候是正常的,在win7运行那几个名字比较长的进 ...

用管理员身份运行看看
 楼主| ZX0228 发表于 2024-5-5 17:28
QvQsuipian 发表于 2024-5-5 16:14
用管理员身份运行看看

也是过了,不行。
QvQsuipian 发表于 2024-5-5 18:25
ZX0228 发表于 2024-5-5 17:28
也是过了,不行。

权限没问题,进程名称也没问题,在win10能用,会不会是杀毒软件/防火墙干扰
你好,再见 发表于 2024-5-8 12:14
ZX0228 发表于 2024-5-5 10:08
匹配的,现在不知道和操作系统有没有关系,在win10 运行的时候是正常的,在win7运行那几个名字比较长的进 ...

进程名有没有隐藏字符呢,tasklist -v列出来的名称直接复制出来写到批处理里面
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-11 22:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表