DOS中判断进程是否存在的方法_DOS/BAT

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

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> 

时间: 2024-11-05 12:31:51

DOS中判断进程是否存在的方法_DOS/BAT的相关文章

DOS中判断进程是否存在的方法

检测进程是否存在,并做出预定动作. tasklist /nh>d:tddown~11.txt find /i "QQ.exe" d:tddown~11.txt if ERRORLEVEL 1 (echo qq.exe不存在) else (echo qq.ex存在) ------------第二个----------- tasklist /nh|find /i "QQa.exe" if ERRORLEVEL 1 (echo qqa.exe不存在) else (e

dos中RD命令递归删除目录的代码_DOS/BAT

rd命令递归删除目录 要求: 用DOS的RD命令删除D盘"文件夹1"中的"文件夹2"整个目录. 具体命令: 复制代码 代码如下: rd D:\文件夹1\文件夹2 /S /Q 删除一个目录. RMDIR [/S] [/Q] [drive:]path RD [/S] [/Q] [drive:]path /S 除目录本身外,还将删除指定目录下的所有子目录和 文件.用于删除目录树. /Q 安静模式,带 /S 删除目录树时不要求确认

一种基于EMF模型的在GEF中判断创建连接线有效性的方法

简介: 结合目前比较受欢迎的 EMF(Eclipse Modeling Framework)和 GEF(Graphical Editing Framework)技术,提出了一种在图形化开发中创建连接线时普遍适用的验证方法. 最后给出了一个创建 连接线时动态 Schema 验证的例子,并根据 Schema 的定义列出创建连接线的真值表.针对该真值表的每 项进行验证,保证不符合 Schema 定义规则的模型对应的图形之间不能创建连接线,降低了 Schema 验证 和修改的复杂性. 一种基于 EMF

Android中杀进程的几种方法 (1) - killBackgroundProcesses

Android中杀进程的几种方法 (1) - killBackgroundProcesses ActivityManager中提供了几种方式来杀进程,比如有forceStopPackage.removeTask.killBackgroundProcesses等. 下面我们就来看看它们的背后都做了些什么. removeTask 我们之前已经写了一篇<关于Android的浅杀>来介绍这个方法的变迁,大家可以回忆一下找找感觉. 复习一下removeTask的好处是,相对后面几个,它的逻辑要简单得多.

jquery中判断对象是否可见的方法

jquery中判断对象是否可见的方法 if($("#id").is(":visible")){} else{} $("#id").is(":hidden")返回True/False 函数:.is() 语法:.is(selector) 检查当前选中的对象是否与给定的属性/参数匹配,如果匹配则返回True,否则返回False 语法: 1..is(selector) 2..is(functino(index)) 3..is(jque

Linux Shell中判断进程是否存在的代码_linux shell

1 利用pgrep 匹配名字 复制代码 代码如下: if test $( pgrep -f $1 | wc -l ) -eq 0 then echo "进程不存在" else echo "存在进程" fi 以下是补充内容: 当前系统中的进程: apple@ubuntu:~$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 13:57 ? 00:00:02 /sbin/init root 2 0 0 13:57

BAT批处理判断目录在%Path%中实现方法_DOS/BAT

貌似没有很优美的做法,只能把%Path%按分号分割,然后一段一段地比较. :InPath [In]Path [Out]0/1 SETLOCAL SET LocalPathCopy=%PATH% SET Result=0 :WHILE IF "%LocalPathCopy" == "" GOTO WEND FOR /F "delims=;" %%I IN ("%LocalPathCopy%") DO ( IF /I "

DOS下内存的配置方法_DOS/BAT

我们大家都知道,DOS大体上不能够完全依靠人机界面的方式来一步步地完成系统的配置.若要让系统发挥出最大的性能,必须依靠我们的进一步努力.下面介绍一下DOS内存的配置方法.  实模式的DOS通常只能使用1M以下的内存空间.其中基本内存为640K,而上位内存则需要相应的内存管理器.基本内存的管理尤为重要,因为使用不当会造成一些程序无法运行.那么,应如何优化使用它呢?这儿有一些建议.  首先,加载提供上位内存(UMB)的内存管理器.通常有EMM386和QEMM等,不过这些工具自身占用的内存较大,在此推

在DOS下使用长文件名的方法_DOS/BAT

昨天我在某网站的论坛上看到,有人问纯DOS下能否使用长文件名,而有人给他的答复是"不可能".他的答复当然是非常不对的,但是,确实有很多人不清楚,在纯DOS下该如何使用长文件名.现在,我就将DOS下使用长文件名的方法介绍一下.  DOS和Windows都是在不断地发展着的.最先支持长文件名的操作系统是Windows NT 3.5,随后Windows 95也采用了这种技术.然而,由于一些原因,MS并没有将长文件名功能加入到纯DOS中.不过,微软公司只是没有在纯DOS下提供LFN(长文件名)