程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> DOS中判斷進程是否存在的方法

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 (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:driversexplorer.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%

      檢測多個特定進程//www.45it.com

      我想實現這樣一個功能:用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:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:Program FilesHPQIAMbin

      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>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved