精华内容
下载资源
问答
  • 1:判断进程是否存在 2:如果存在隔一段时间再判断 3:如果不存在启动该进程。 代码如下 @echo off setlocal enabledelayedexpansion set p=no set process= set process_path= :1 for /F "tokens=1*" ...

    由于一些原因软件老是莫名退出,因此写了个脚本
    需求:
    1:判断该进程是否存在
    2:如果存在隔一段时间再判断
    3:如果不存在启动该进程。
    代码如下

    @echo off
    setlocal enabledelayedexpansion 
    set p=no
    set process=
    set process_path=
    :1
    for /F "tokens=1*" %%a in ('tasklist /nh /fi "imagename eq %process%"') do if %%a == %process% set p=yes
    if %hasit% == yes (
    rem echo %process%存在
    ping 127.1 -n 60 >nul 2>nul
    set p=no
    goto 1
    ) else (
    if %hasit% == no (
    echo %process%不存在	重新启动时间%date%%time%>>start_process.log
    start %process_path%
    ping 127.1 -n 60 >nul 2>nul
    goto 1
    )
    )
    

    后台执行vbs代码如下

    Set ws = CreateObject("Wscript.Shell")
    ws.run "cmd /c 你要执行的程序名称",vbhide
    

    说明
    set process=程序进程名
    set process_path=要启动程序的路径
    想要后台直接执行vbs代码就行
    间隔是60s检测一次。
    执行后vbs后可在任务管理器进程结束

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 批处理脚本:判断进程是否存在 @ECHO OFF :check ntaskldr.exe tasklist >list.txt // 将所有进程信息列入list.txt文件里面(这里默认当前目录) find /i "ntaskldr.exe" list.txt // 从list.txt文件里查找...

    批处理脚本:判断进程是否存在

    @ECHO OFF 
    :check ntaskldr.exe                                        
    tasklist >list.txt                 // 将所有进程信息列入list.txt文件里面(这里默认当前目录)
    find /i "ntaskldr.exe" list.txt    // 从list.txt文件里查找ntaskldr.exe这个进程
    if "%errorlevel%"=="1" (goto f) else (goto e)    // 如果进程不存在,执行f处的代码;反之执行e处的代码                                                                                                            
    :f
    taskkill /f /im DSMDaemon.exe      // 杀掉进程
    :e
    cls
    :check cmd.exe    // 由于上面杀进程后会留下cmd.exe没有退出,并一起kill cmd.exe
    tasklist >list2.txt
    find /i "cmd.exe" list2.txt
    if "%errorlevel%"=="1" (goto e)
    :e
    taskkill /f /im cmd.exe
    :end
    exit

     

     

     

     

    展开全文
  • 第一次接触window下的批处理,领导要求写...判断当前是否有当前任务的进程 如果有 判断数量,调用B.bat 如果不存在 启用两个bat 调用要启动的程序 返回再判断。@echo offgoto start :start tasklist -v | findstr /i

    第一次接触window下的批处理,领导要求写两个bat 批处理文件 互相守护 同时保证两个端口是运行的。
    但是这俩个进程是相同的名称。
    第一次尝试:
    a.bat
    判断当前是否有当前任务的进程
    如果有 判断数量,调用B.bat
    如果不存在 启用两个bat 调用要启动的程序 返回再判断。

    @echo off
    
    goto start 
    
    :start
    tasklist -v | findstr /i netsafe_log > NUL  
    if ErrorLevel 1 (
     echo  启动两个端口进程 进程不存在
     call G:\BAT\start4437.bat
     call G:\BAT\start5775.bat  
     goto start
    
    ) else ( 
     echo "进程存在"  
    rem for /f %%i in ('tasklist^|findstr /i netsafe_log ) do set /a n+=1
    rem if %n% EQU 2 (
        echo   两个进程存在
        call G:\BAT\AAA\CheckRunning.bat
    )

    B.bat

    @echo off
    
    goto start 
    
    :start
    tasklist -v | findstr /i netsafe_log > NUL  
    if ErrorLevel 1 (
     echo  启动两个端口进程 进程不存在
     call G:\BAT\start4437.bat
     call G:\BAT\start5775.bat  
     goto start
    
    ) else ( 
     echo "进程存在"  
    rem for /f %%i in ('tasklist^|findstr /i netsafe_log ) do set /a n+=1
    rem if %n% EQU 2 (
        echo   两个进程存在
        call G:\BAT\AAA\checkprocess.bat
    )

    网上还有用telnet.exe 存在状态来判断 端口是否是通的,但是这种方法不好,因为一旦加入系统服务,bat文件会杀死所有的telnet.exe 会导致 宿主机上的telnet.exe 无法应用,代码如下
    mainfin.bat

    @echo off
    
    goto panduan
    :panduan
    start /min  telnet.exe 127.0.0.1 5775 
    ping -n 5 127.1>nul
    tasklist|find /i "telnet.exe" > nul
    if %ERRORLEVEL% EQU 0 ( 
    GOTO ok ) else ( 
    echo 4337 service err
    goto err  )
    :err
    call G:\BAT\start5775.bat
    goto panduan
    :ok
    echo 这里杀死了 telnet.exe 
    taskkill /F /IM telnet.exe > nul
    call G:\BAT\addfin.bat

    addfin.bat

    @echo off
    goto panduan
    :panduan
    start /min  telnet.exe 127.0.0.1 4437 
    ping -n 5 127.1>nul
    tasklist|find /i "telnet.exe" > nul
    if %ERRORLEVEL% EQU 0 ( 
    GOTO ok ) else ( 
    echo 4337 service err
    goto err  )
    :err
    call G:\BAT\start4437.bat
    goto panduan
    :ok
    taskkill /F /IM telnet.exe > nul
    call G:\BAT\mainfin.bat

    但是上面4个bat 文件都是有问题的,问题在资源一直没有释放 而且所占内存越来越多。 目前没有想到解决办法。 上面4个程序都不能解决时时检测端口的功能,虽然a.bat成功检测到了程序是否在进程中,但是程序在进程中不代表程序的端口的运行状态。 需要再次改进
    2017年10月7日11:33:53
    改进的办法是 用netstat 查看端口是在运行状态 如果是运行则继续循环 如果不在 则进行重启

    @echo off
    title CheckRunning
    
    goto panduan
    
    :panduan
    ping -n 5 127.1>nul
    netstat -ano | findstr ".*:5775\>" 
    rem netstat -ano | findstr  0.0.0.0 | findstr 5775 | findstr LISTENING > nul
    if %ERRORLEVEL% EQU 0 ( 
    GOTO ok ) else ( 
    echo 5775 service err
    goto err  )
    
    :err
    call G:\BAT\start5775.bat
    echo err 
    goto panduan
    
    :ok
    echo ok 5775 ~~!!!
    rem start/wait G:\BAT\final\CheckRunning.bat
    
    ping -n 5 127.1>nul
    netstat -ano | findstr ".*:4437\>" 
    rem 可以加上判断端口状态的关联
    rem netstat -ano | findstr  0.0.0.0 | findstr 4437 | findstr LISTENING > nul 
    if %ERRORLEVEL% EQU 0 ( 
    
    GOTO ok4437 ) else ( 
    
    echo 4437 service err4437
    goto err4437  )
    
    :ok4437
    goto panduan
    
    :err4437
    call G:\BAT\final\CheckRunning.bat
    
    
    @echo off
    title checkprocess
    
    goto panduan
    
    :panduan
    
    ping -n 5 127.1>nul
    netstat -ano | findstr ".*:4437\>" 
    rem netstat -ano | findstr  0.0.0.0 | findstr 5775 | findstr LISTENING > nul
    if %ERRORLEVEL% EQU 0 ( 
    
    GOTO ok ) else ( 
    
    echo 4437 service err
    goto err  )
    
    
    
    :err
    call G:\BAT\start4437.bat
    echo err 
    goto panduan
    
    
    :ok
    echo ok ~~!!!
    call G:\BAT\final\checkprocess.bat
    exit

    最后隐藏 用vb

    CreateObject("WScript.Shell").Run "cmd /c G:/BAT/final/checkprocess.bat",0 
    展开全文
  • 这里分享的主要是通过批处理中先判断进程是否存在,然后再做出操作的实现代码,需要的朋友可以参考下 检测进程是否存在,并做出预定动作。 tasklist/nh>d:\tddown~1\1.txt find/i"QQ.exe"d:\tddown~1\1....

     

    这里分享的主要是通过批处理中先判断进程是否存在,然后再做出操作的实现代码,需要的朋友可以参考下
     

    检测进程是否存在,并做出预定动作。

    tasklist /nh>d:\tddown~1\1.txt

    find /i "QQ.exe" d:\tddown~1\1.txt
    if ERRORLEVEL 1 (echo qq.exe不存在) else (echo qq.ex存在)
    ------------第二个-----------
    tasklist /nh|find /i "QQa.exe"
    if ERRORLEVEL 1 (echo qqa.exe不存在) else (echo qqa.exe存在)


    检查电脑里有没QQ.EXE进程,有则自动结束

    a)、先用tasklist 输入进程列表给find ,让find找出qq.exe进程,如果找到,那执行下面的结束操作,找不到就退出bat

    @echo off
    tasklist|find /i "qq.exe" ||exit
    taskkill /im qq.exe /f

    b)、把进程列表放在A文档里面然后再用FIND查找代码:

    @echo off
    tasklist>C:\a.txt
    find "QQ.exe" C:\a.txt&&taskkill /f /im "QQ.exe"

    c)、如果不是要循环监控的话,直接taskkill。。。反正最终目的是不要有QQ进程。


    每隔20秒自动检测进程列表,自动关闭notepad.exe。

    @echo off
    :1
    tasklist | find "notepad.exe" >>c:\notepad.luowei
    if exist c:\notepad.luowei taskkill /f /im notepad.exe
    ping 127.1 -n 20 >nul 2>nul
    goto 1


    检测explorer.exe进程

    检测explorer.exe进程,发现有这个进程就退出,没有就从E盘复制一个到系统目录,再运行。
    我系统经常进不去,发现就是被病毒发explorer.exe文件删了。

    tasklist|find /i "explorer.exe"||copy /y e:\drivers\explorer.exe %systemroot%\&&start /b explorer.exe


    每30秒检测一个进程的运行,如果不存在电脑重启。

    @echo off
    rem 重启应该使用-r
    tasklist|findstr /i "explorer.exe" ||shutdown -r -t 50
    rem willsort斑竹说过,ping的第一条消息是不需要等待的,所以延时30秒,应该用-n 31
    ping 127.1 -n 31 >nul 2>nul
    rem 不必使用循环,call一下自己就行了
    call %0


    检测系统的一个进程是否存在的脚本, 如果不存在,就自动关机.

    tasklist >tasklist.txt
    rem 进程名如 smss.exe
    find /i tasklist.txt "进程名"
    if errorlevel 1 ((del /q tasklist.txt)&(goto end))
    if errorlevel 0 ((del /q tasklist.txt)&(echo 有你想要的进程)&pause&exit)
    :end
    shutdown -s -t 1

    不过这样只有这个bat运行一次检测一次,没有实时监控

    用Goto 语句做 监测

    :start
    tasklist >tasklist.txt
    find /i tasklist.txt "Explorer.exe"
    if errorlevel 1 ((del /q tasklist.txt)&(goto end))
    if errorlevel 0 ((goto start))
    :end
    shutdown -s -t 50

    这样一来 如果Explorer.exe 进程,存在, 就是死循环.
    直到 Explorer.exe 进程结束, 就执行 关机命令.
    但这样有个缺点 CPU 100%


    检测多个特定进程

    我想实现这样一个功能:用tasklist列出当前进程清单,然后用find来搜索进程中是否含有1.exe,2.exe,3.exe......(假设啊)如果清单中含有其中一个就执行某个操作。我想用FOR来实现循环可是怎么试也不行啊!!我是这样试的:
    tasklist | for %%j in (1.exe,2.exe,3.exe) do find "%%j" && goto :p
    find是不是不能用for啊?请高人指点。
    ---------
    tasklist | findstr "1.exe 2.exe 3.exe"&&goto :p
    for不会接受传递自tasklist的数据,它是打in来定义的
    ---------
    @echo off
    set 1.exe=被定义的程序
    set 2.exe=被定义的程序
    set 3.exe=被定义的程序


    for /f "tokens=1" %%i in ('tasklist /NH') do (
    if defined %%i echo %%i
    )
    pause>nul
    ---------


    检测和退出进程问题

    A B 两进程存在,若A不存在,则退出B。每隔N秒循环检测一次,退出B后,退出程序

    tasklist|findstr /i "A.exe" ||(taskkill /im B.exe /t /f&exit)

    列出当前运行的进程,可自定义说明内容,手动关闭进程。
    可改良后自动判断处理进程。
     

    @echo off
    PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\HPQ\IAM\bin
    title 进程分析自定义结束进程程序
    echo 按任意键开始分析
    pause>nul
    set space=
    echo.
    echo 程序分析如下:
    echo =========================================================================
    echo.
    echo 进程名称 进程说明
    echo.
    call tasklist.exe

    ::以下定义程序说明,自己可以补充。
    set System=『系统进程』
    set smss.exe=『系统进程』调用对话管理子系统和负责操作你系统的对话
    set csrss.exe=『系统进程』管理Windows图形相关任务
    set winlogon.exe=『系统进程』
    set services.exe=『系统进程』管理启动和停止服务
    set lsass.exe=『系统进程』用于本地安全和登陆策略
    set svchost.exe=『系统进程』用来运行动态链接库dll文件
    set ctfmon.exe=·提供语音识别、手写识别等
    set conime.exe=·输入法编辑器相关程序

    ::主程序
    setlocal enabledelayedexpansion
    for /f "tokens=1" %%i in ('tasklist /NH') do (
    set str=%%i %space%
    set str=!str:~0,20!
    if defined %%i (echo !str! !%%i!) else echo !str! ‖根据进程自已输进程名)
    echo =========================================================================
    echo 分析完毕...
    :goto title
    title 结束进程
    set /p run=请输入要结束的程序名
    ::ntsd -c q -pn %run%
    taskkill /f /t /im %run%
    pause>nul 先分析PID和进程。然后自定义结束


    --------------------------------------------------------------------------------


    当使用 echo 命令时,要显示管道 (|) 或重定向字符(< 或 >),请在管道 (|) 或重定向字符(例如,^>、^< 或 ^|)的前面使用脱字符 (^)。如果需要使用脱字符 (^),请键入两个脱字符 (^^)。

    ||

    Usage:
    第一条命令 || 第二条命令 [|| 第三条命令...]

    用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;

    Sample:

    D:\TDDownload>dir *.txt||ren 1.txt 3.txt&&dir *.txt
    驱动器 D 中的卷是 Application
    卷的序列号是 B445-F155

    D:\TDDownload 的目录

    2008-01-26 15:35 229 1.txt
    2008-01-26 15:35 229 2.txt
    2008-01-26 15:35 229 第三只眼.txt
    3 个文件 687 字节
    0 个目录 7,510,728,704 可用字节

    D:\TDDownload>dir 3.txt||ren 1.txt 3.txt&&dir *.txt
    驱动器 D 中的卷是 Application
    卷的序列号是 B445-F155

    D:\TDDownload 的目录

    找不到文件
    驱动器 D 中的卷是 Application
    卷的序列号是 B445-F155

    D:\TDDownload 的目录

    2008-01-26 15:35 229 2.txt
    2008-01-26 15:35 229 3.txt
    2008-01-26 15:35 229 第三只眼.txt
    3 个文件 687 字节
    0 个目录 7,510,728,704 可用字节

    D:\TDDownload> 

    转载于:https://www.cnblogs.com/pejsidney/p/8258833.html

    展开全文
  • 下面的批处理作用就是每隔5秒监测ngrok进程是否存在,存在不做任何处理,不存在就启动另外脚本。括号里面的是注释 :start choice /t 5 /d y /n >nul (5秒执行一次下面的指令) tasklist|find /i "ngrok.exe" ...
  • 查看用户是否存在.bat 查看电脑硬件信息.bat 查看网关的MAC地址.bat 查看进程使用的端口.bat 查看驱动器.bat 检查网络信息.bat 模拟2K开机进度条.cmd 每个目录占用的空间.bat 测试网络是否通畅.cmd 画圆角矩形框.cmd...
  • 常用批处理 bat

    热门讨论 2007-09-13 15:41:30
    查看工作组.bat │ 查看物理内存.bat │ 查看用户是否存在.bat │ 查看电脑硬件信息.bat │ 查看驱动器.bat │ 禁止保留文档记录.bat │ 给每个盘添加卷标.cmd │ 被锁定帐户.bat │ ...
  • 常用Windows批处理命令

    2009-12-27 22:38:52
    查看用户是否存在.bat 查看电脑硬件信息.bat 查看网关的MAC地址.bat 查看进程使用的端口.bat 查看驱动器.bat 检查网络信息.bat 每个目录占用的空间.bat 百度关键字搜索.bat 禁止保留文档记录.bat 篮球飞人...
  • 日期必须是2011-02-01,才能运行这个软件,要求,运行这个批处理先记录下今天是XX年X月X日,然后改日期到2011.2.1,然后运行artcampro.exe这个文件,批处理在后台默默运行,30秒一次判断artcampro.exe进程是否存在,...
  • 查看用户是否存在.bat 查看电脑硬件信息.bat 查看进程使用的端口.bat 查看驱动器.bat 校对时间.cmd 检查网络信息.bat 检测IP格式是否正确.cmd 检测光驱中是否有盘.cmd 模拟2K开机进度条.bat 模拟2K开机进度条.cmd ...
  • 查看用户是否存在.bat 查看电脑硬件信息.bat 查看网关的MAC地址.bat 查看进程使用的端口.bat 查看驱动器.bat 查询文件日期(升级版).bat 校对时间.cmd 检查网络信息.bat 检测IP格式是否正确.cmd 检测光驱...
  • 0x01 漏洞描述 ApacheFlink是一个开源的流处理框架,具有强大的流处理和批处理功能。Apache Flink 1.11.0(以及1.11.1和1.11.2中发布的...读取该文件可直接判断是否存在漏洞 http://192.168.1.1:8081/jobmanager/logs/
  • 70个bat命令

    热门讨论 2008-03-06 13:07:24
    绑定网关的批处理及预留维护提到.bat 被锁定帐户.bat 不显示扩展名.bat 不显示隐藏文件.bat 查看电脑硬件信息.bat 查看工作组.bat 查看进程使用的端口.bat 查看驱动器.bat 查看网关的MAC...
  • 升级MaxDOS71

    2009-05-30 11:28:00
    使用说明: 把晨枫U盘维护工具V2.0版解压,然后把...Dready.com 判断驱动器状态,检查光驱中是否有光盘.软盘是否写保护. Edit.com 相当于记事本. Fakedisk.com 用来解压.img镜像. Find.exe ...
  • MaxDOS_71PXE_G115.rar

    2009-03-02 19:12:34
    Dready.com 判断驱动器状态,检查光驱中是否有光盘. 软盘是否写保护. Edit.com 相当于记事本. Fakedisk.com 用来解压.img镜像. Find.exe 文本找加工具. Format.com 格式化fat32...
  • wsyscheck中文版

    2011-06-23 19:15:02
    注意的是,如果木马插入系统进程,则反映的日志是阻止系统进程的动作,你需要自我分辨该动作是否有害并分析该进程的模块文件。 要保留日志请在取消前Ctrl+A全选后复制。注意,为防止日志过多,满1000条后自动删除前...
  • Wsyscheck20080122(中文版)

    2009-12-05 07:43:12
    注意的是,如果木马插入系统进程,则反映的日志是阻止系统进程的动作,你需要自我分辨该动作是否有害并分析该进程的模块文件。 要保留日志请在取消前Ctrl+A全选后复制。注意,为防止日志过多,满1000条后自动删除前...
  • Wsyscheck0119中文版

    2009-06-22 23:08:19
    注意的是,如果木马插入系统进程,则反映的日志是阻止系统进程的动作,你需要自我分辨该动作是否有害并分析该进程的模块文件。 要保留日志请在取消前Ctrl+A全选后复制。注意,为防止日志过多,满1000条后自动删除前...
  • 注意的是,如果木马插入系统进程,则反映的日志是阻止系统进程的动作,你需要自我分辨该动作是否有害并分析该进程的模块文件。 要保留日志请在取消前Ctrl+A全选后复制。注意,为防止日志过多,满1000条后自动删除前...
  • Wsyscheck 3

    2009-07-05 17:54:11
    注意的是,如果木马插入系统进程,则反映的日志是阻止系统进程的动作,你需要自我分辨该动作是否有害并分析该进程的模块文件。 要保留日志请在取消前Ctrl+A全选后复制。注意,为防止日志过多,满1000条后自动删除前...
  • Wsyscheck.rar

    2009-02-28 15:38:35
    注意的是,如果木马插入系统进程,则反映的日志是阻止系统进程的动作,你需要自我分辨该动作是否有害并分析该进程的模块文件。 要保留日志请在取消前Ctrl+A全选后复制。注意,为防止日志过多,满1000条后自动删除前...
  • wsyscheck by wangsea

    2008-09-03 14:23:54
    注意的是,如果木马插入系统进程,则反映的日志是阻止系统进程的动作,你需要自我分辨该动作是否有害并分析该进程的模块文件。 要保留日志请在取消前Ctrl+A全选后复制。注意,为防止日志过多,满1000条后自动删除前...
  • Wsyscheck.exe

    2008-11-01 18:08:04
    注意的是,如果木马插入系统进程,则反映的日志是阻止系统进程的动作,你需要自我分辨该动作是否有害并分析该进程的模块文件。 要保留日志请在取消前Ctrl+A全选后复制。注意,为防止日志过多,满1000条后自动删除前...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0139 使用FileExists函数判断指定文件是否存在 90 0140 使用FileGetAttr函数返回文件的属性 90 0141 使用FileGetDate函数返回文件的修改日期 90 0142 使用FileWrite函数将缓冲区中的内容写入文件 91 4.10 ...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

批处理判断进程是否存在