• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 14, comments - 1, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            2010年4月30日

            http://blog.163.com/yesaidu@126/blog/static/51819307200861742138193/

            posted @ 2010-04-30 14:12 ggh 閱讀(224) | 評論 (0)編輯 收藏

            2010年1月13日

            http://zthread.sourceforge.net

            posted @ 2010-01-13 11:11 ggh 閱讀(429) | 評論 (0)編輯 收藏

            2009年9月16日

            http://www.robvanderwoude.com/2kprintcontrol.php

            posted @ 2009-09-16 18:18 ggh 閱讀(284) | 評論 (0)編輯 收藏

            2009年9月3日

            makefile文件是win32匯編程序中不可少的一部分,類似于dos匯編下的bat文件

            它一般需要包含以下內容

            1.注釋

            2.宏定義

            3.顯示規則

            4.隱含規則

            為了方便使用,一般都把描述文件的文件名取為默認文件名:makefile。這個例子的makefile文件如下(注意前面括號里的是行號,不是文件的真正內容):

            (001)   # nmake工具的描述文件例子
            (002)   EXE = Test.exe      #指定輸出文件
            (003)   OBJS = x.obj \
            (004)       y.obj       #需要的目標文件
            (005)   RES = x.res     #需要的資源文件
            (006)  
            (007)   LINK_FLAG = /subsystem:windows #鏈接選項
            (008)   ML_FLAG = /c /coff      #編譯選項
            (009)  
            (010)   #定義依賴關系和執行命令
            (011)   $(EXE): $(OBJS) $(RES)
            (012)       Link $(LINK_FLAG) /out:$(EXE) $(OBJS) $(RES)
            (013)   $(OBJS): Common.inc
            (014)   y.obj: y.inc
            (015)
            (016)   #定義匯編編譯和資源編譯的默認規則
            (017)   .asm.obj:
            (018)       ml $(ML_FLAG) $<
            (019)   .rc.res:
            (020)       rc $<
            (021)  
            (022)   #清除臨時文件
            (023)   clean:
            (024)       del *.obj
            (025)       del *.res
            1. 注釋和換行
            makefile中的注釋是以#號開頭一直到行尾的字符,當nmake工具處理到這些字符的時候,它會完全忽略#號及全部注釋字符。
            當一行的內容過長的時候,可以用換行符來繼續,makefile的換行符是\,如例子中的第三行和第四行可以合并為:
            OBJS = x.obj y.obj     #需要的目標文件
            在使用換行符的時候要注意在“\”后面不能再加上其他字符,包括注釋和空格,否則nmake檢測到“\”不在一行的最后,就不會把它當成換行符解釋,就會出現錯誤。
            2. 宏定義
            makefile中允許使用簡單的宏定義指代源文件及其相關編譯信息,可以把宏稱為變量,在整個描述文件中,只要符合下面語法的行就是宏定義:
            變量名=變量內容
            如上面例子文件中的2到8就是宏定義,在引用宏時只需在變量前加$符號,但是要注意的是,如果變量名的長度超過一個字符,在引用時就必須加圓括號(),下面都是有效的宏引用:
            $(LINK_FLAG)
            $(EXE)
            $A
            $(A)
            其中最后兩個引用是完全一致的。
            宏定義的使用可以使makefile的使用更靈活:首先可以使文件便于修改,比如把第8行和第18行中ml的選項部分寫成宏定義,以后要改變編譯選項的時候,只要直接在makefile文件頭部改變宏定義就可以了,不必重新閱讀整個makefile文件;其次,當不止一個地方用到同一個文件的時候,把文件名定義為宏定義可以減少錯誤,增加可讀性,同時也可以便于修改;最大的好處是可以直接在命令行中用新的宏定義覆蓋,比如在命令行中鍵入:
            nmake ML_FLAG="/c /coff /Fl"
            那么這時就會以新的/c /coff /Fl定義代替makefile中定義的/c /coff,在這種使用中要注意兩個問題,一是宏名稱要區分大小寫,ML_FLAG和ml_flag是不一樣的;二是定義值中有空格的時候要用雙引號引起來,沒有空格時可以不用雙引號,如ML_FLAG=/c,這使臨時使用不同的參數編譯文件時可以不必修改makefile。
            3. 顯式規則
            makefile中包含有一些規則,這些規則定義了文件之間的依賴關系和產生命令,一個規則的格式是這樣的:
            目標文件:依賴文件;命令            (方法1)

            目標文件:依賴文件             (方法2)
                    命令
            在規則定義和命令行中,不能包含注釋,例子中的第11和12行把宏定義展開后就是:
            test.exe:x.obj y.obj x.res
                Link /subsystem:windows /out:test.exe x.obj y.obj x.res
            這里的目標文件就是test.exe,它依賴于3個文件x.obj,y.obj和x.res,如果有必要,產生目標文件的命令就是下面的Link命令,整個規則可以用兩種方法,用第二種方法的時候,命令可以從第二行開始,第一行的“;”省略,但是這時命令前面必須有一個Tab字符,否則nmake無法區分這究竟是命令還是別的定義。目標文件可以有多個,依賴文件也可以有多個,同時命令也可以由多個命令行組成,當然這時候就必須用第二種方法定義了。
            我們也可以用test.exe生成的規則定義其他文件,如x.obj或x.res的生成方法,但nmake如何知道哪個是最終要make的文件呢?實際上nmake默認將整個描述文件的第一條規則中的目標文件認為是最終文件,如果我們把11,12行放到第13行后面,那么x.obj和y.obj的建立規則就成了第一條規則,nmake建立了x.obj和x.obj之后就不理會test.exe的建立了,所以我們必須把最終需要生成的文件放在第一條規則定義。當然,在nmake的命令行參數中可以指定要make的目標,如我們要生成x.res文件,那么不必修改makefile將x.res的描述規則移動到最前面,而是直接在命令行鍵入以下命令即可:
            nmake x.res
            參數中也可以同時帶好幾個目標文件名,nmake會一一處理,如果指定的目標文件沒有對應的規則,nmake會返回一個出錯信息:
            fatal error U1073: don't know how to make 'xxx文件'
            當用戶要求nmake去建造一個目標時,make會去找到這個目標的依賴規則,這時第二行中的命令并不會立刻就執行,而是首先要做一些事情:nmake先去檢查依賴文件是否是另一條規則的目標文件,如果是則先處理這一條規則,否則不是,nmake再檢查各個依賴文件的時間,看這些文件有沒有比目標文件更新的,如果沒有,nmake會決定不再重新建造目標文件,并給出提示:'xxx文件' is up-to-date,如果依賴文件有比目標文件更新的,才執行命令。
            所以一個順序下來,所有的目標文件以及它們的依賴文件,以及依賴文件的依賴文件都會被檢查并更新,總而言之,一個目標文件的建立包含了順序正確的指令鏈接,這個鏈接結構是樹狀的,目標文件是根,一級級擴展到多個文件,我們要求的是nmake去建立鏈接中處于根部的那個文件,nmake會根據鏈接結構從目標開始向初始狀態前進,最后慢慢回來,在這個過程中執行建立每個文件所必須的命令,一直到最終目標建立完成。
            目標也可以沒有依賴文件,而且目標也可以不是一個真正存在的文件,如例子第23行到第25行中的clean是一個目標,但我們并不是要生成一個clean文件,而是希望在文件調試完畢后用nmake來清除臨時文件,當我們鍵入nmake clean的時候,工作目錄下并沒有clean這個文件,那么nmake就會去執行clean定義中的命令,因為nmake把每一個不存在的目標當做是一個過時的目標,如此一來,就會刪除中間過程中的文件*.obj和*.res。
            指出了目標文件全名的規則稱為顯式規則,但有些類別的文件的編譯方法可以是雷同 的,如從asm文件產生obj文件的命令總是用ml,從rc文件產生res文件的命令總是用rc,對于每個文件都寫一條規則有些多余,這時候就要用到隱含規則。
            4. 隱含規則
            隱含規則可以為某一類的文件指出建立的命令,它具體定義了如何將帶一個特定擴展名的文件轉換成具有另一種擴展名的文件,定義的格式是:
            .源擴展名.目標擴展名:;命令        (方法1)

            .源擴展名.目標擴展名:         (方法2)
                命令
            隱含規則的語法和顯式規則相似,也是用“:”隔開,在“;”下面書寫命令,也可以不用“;”而將命令寫在第二行,同理,這時命令之前要加一個Tab字符。
            隱含規則不能有依賴文件,所以“:”下面沒有內容,例子中的第17、18行定義了從asm文件建立obj文件的隱含規則,第19和20行定義了從rc文件建立res文件的隱含規則,隱含規則中無法指定確定的輸入文件名,因為輸入文件名是泛指的有相同擴展名的一整類文 件,這時候就要用到幾個特殊的內定宏來指定文件名,這些宏是$@,$*,$?和$<,它們的含義如下:
            ●   $@ —— 全路徑的目標文件。
            ●   $* —— 除去擴展名的全路徑的目標文件。
            ●   $? —— 所有源文件名。
            ●   $< —— 源文件名(只能用在隱含規則中)。
            所以第19、20行中的rc $< 用于x.rc的時候就是rc x.rc。
            讀者可以注意到一些顯式規則沒有命令行,如第13行的“$(OBJS): Common.inc”指出了所有的obj文件全部依賴于Common.inc文件,第14行的“y.obj: y.inc”則指出了y.obj同時也依賴于y.inc和第13行的規則合并,y.obj依賴于Common.inc也依賴于y.inc,但是這兩條規則都沒有指出產生這些obj文件的命令,所以nmake處理的時候會到隱含規則中去找命令行,最后會用第18行的“ml $(ML_FLAG) $<”命令去產生這些obj文件。


            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/hust_chen/archive/2008/04/25/2329368.aspx

            posted @ 2009-09-03 12:57 ggh 閱讀(396) | 評論 (0)編輯 收藏

            轉================================
            Makefile文件

              Make工具最主要也是最基本的功能就是通過makefile文件來描述源程序之間的相互關系并自動維護編譯工作。而makefile   文件需要按照某種語法進行編寫,文件中需要說明如何編譯各個源文件并連接生成可執行文件,并要求定義源文件之間的依賴關系。makefile   文件是許多編譯器--包括   Windows   NT   下的編譯器--維護編譯信息的常用方法,只是在集成開發環境中,用戶通過友好的界面修改   makefile   文件而已。
              在   UNIX   系統中,習慣使用   Makefile   作為   makefile   文件。如果要使用其他文件作為   makefile,則可利用類似下面的   make   命令選項指定   makefile   文件:
              $   make   -f   Makefile.debug
              例如,一個名為prog的程序由三個C源文件filea.c、fileb.c和filec.c以及庫文件LS編譯生成,這三個文件還分別包含自己的頭文件a.h   、b.h和c.h。通常情況下,C編譯器將會輸出三個目標文件filea.o、fileb.o和filec.o。假設filea.c和fileb.c都要聲明用到一個名為defs的文件,但filec.c不用。即在filea.c和fileb.c里都有這樣的聲明:
              #include   "defs "
              那么下面的文檔就描述了這些文件之間的相互聯系:
              ---------------------------------------------------------
               #It   is   a   example   for   describing   makefile
               prog   :   filea.o   fileb.o   filec.o
               cc   filea.o   fileb.o   filec.o   -LS   -o   prog
               filea.o   :   filea.c   a.h   defs
               cc   -c   filea.c
               fileb.o   :   fileb.c   b.h   defs
               cc   -c   fileb.c
               filec.o   :   filec.c   c.h
               cc   -c   filec.c
              ----------------------------------------------------------
                這個描述文檔就是一個簡單的makefile文件。
              從上面的例子注意到,第一個字符為   #   的行為注釋行。第一個非注釋行指定prog由三個目標文件filea.o、fileb.o和filec.o鏈接生成。第三行描述了如何從prog所依賴的文件建立可執行文件。接下來的4、6、8行分別指定三個目標文件,以及它們所依賴的.c和.h文件以及defs文件。而5、7、9行則指定了如何從目標所依賴的文件建立目標。
              當filea.c或a.h文件在編譯之后又被修改,則   make   工具可自動重新編譯filea.o,如果在前后兩次編譯之間,filea.C   和a.h   均沒有被修改,而且   test.o   還存在的話,就沒有必要重新編譯。這種依賴關系在多源文件的程序編譯中尤其重要。通過這種依賴關系的定義,make   工具可避免許多不必要的編譯工作。當然,利用   Shell   腳本也可以達到自動編譯的效果,但是,Shell   腳本將全部編譯任何源文件,包括哪些不必要重新編譯的源文件,而   make   工具則可根據目標上一次編譯的時間和目標所依賴的源文件的更新時間而自動判斷應當編譯哪個源文件。
            Makefile文件作為一種描述文檔一般需要包含以下內容:
              ◆   宏定義
              ◆   源文件之間的相互依賴關系
              ◆   可執行的命令
              Makefile中允許使用簡單的宏指代源文件及其相關編譯信息,在Linux中也稱宏為變量。在引用宏時只需在變量前加$符號,但值得注意的是,如果變量名的長度超過一個字符,在引用時就必須加圓括號()。
              下面都是有效的宏引用:
              $(CFLAGS)
              $2
              $Z
              $(Z)
              其中最后兩個引用是完全一致的。
              需要注意的是一些宏的預定義變量,在Unix系統中,$*、$@、$?和$ <四個特殊宏的值在執行命令的過程中會發生相應的變化,而在GNU   make中則定義了更多的預定義變量。關于預定義變量的詳細內容,
              宏定義的使用可以使我們脫離那些冗長乏味的編譯選項,為編寫makefile文件帶來很大的方便。
              ---------------------------------------------------------
               #   Define   a   macro   for   the   object   files
               OBJECTS=   filea.o   fileb.o   filec.o

               #   Define   a   macro   for   the   library   file
               LIBES=   -LS

               #   use   macros   rewrite   makefile
               prog:   $(OBJECTS)
               cc   $(OBJECTS)   $(LIBES)   -o   prog
               ……
              ---------------------------------------------------------
              此時如果執行不帶參數的make命令,將連接三個目標文件和庫文件LS;但是如果在make命令后帶有新的宏定義:
              make   "LIBES=   -LL   -LS "
            則命令行后面的宏定義將覆蓋makefile文件中的宏定義。若LL也是庫文件,此時make命令將連接三個目標文件以及兩個庫文件LS和LL。
              在Unix系統中沒有對常量NULL作出明確的定義,因此我們要定義NULL字符串時要使用下述宏定義:
              STRINGNAME=

            posted @ 2009-09-03 12:31 ggh 閱讀(266) | 評論 (0)編輯 收藏

            2009年9月2日

            優化

            選項 作用
            /O1 創建小代碼
            /O2 創建快速代碼
            /Oa 假設沒有別名
            /Ob 控制內聯展開
            /Od 禁用優化
            /Og 使用全局優化
            /Oi 生成內部函數
            /Op 改善浮點數一致性
            /Os 代碼大小優先
            /Ot 代碼速度優先
            /Ow 假定在函數調用中使用別名
            /Ox 使用最大優化 (/Ob1gity /Gs)
            /Oy 省略框架指針

             

            代碼生成

            選項 作用
            /clr 啟用 C++ 的托管擴展并產生在公共語言運行庫上運行的輸出文件
            /EH 指定異常處理模型
            /G3 優化代碼以優選 386 處理器。在 Visual C++ 5.0 中已經停用,編譯器將忽略此選項
            /G4 優化代碼以優選 486 處理器。在 Visual C++ 5.0 中已經停用,編譯器將忽略此選項
            /G5 優化代碼以優選 Pentium
            /GB 與 /G6 等效;將 _M_IX86 的值設置為 600
            /Gd 使用 __cdecl 調用約定
            /Ge 激活堆棧探測
            /GF
            /GF 啟用字符串池
            /GH 調用掛鉤函數 _penter
            /GH 調用掛鉤函數 _pexit
            /GL 啟用全程序優化
            /Gm 啟用最小重新生成
            /Gr 啟用運行時類型信息 (RTTI)
            /Gr 使用 __fastcall 調用約定
            /GS 控制堆棧探測
            /GT 支持使用靜態線程本地存儲區分配的數據的纖程安全
            /GX 啟用同步異常處理
            /Gy 啟用函數級鏈接
            /GZ 使用 __stdcall 調用約定
            /MD 使用 MSVCRT.lib 創建多線程 DLL
            /MDd 使用 MSVCRTD.lib 創建調試多線程 DLL
            /ML 使用 LIBC.lib 創建單線程可執行文件
            /MLd 使用 LIBCD.lib 創建調試單線程可執行文件
            /MT 使用 LIBCMT.lib 創建多線程可執行文件
            /MTd 使用 LIBCMTD.lib 創建調試多線程可執行文件

            輸出文件

            選項 作用
            /FA
            /FA 創建列表文件
            設置列表文件名
            /Fd 重命名程序數據庫文件
            /Fe 重命名可執行文件
            /Fm 創建映射文件
            /Fo 創建對象文件
            /Fp 指定預編譯頭文件名
            /FR
            /FR 生成瀏覽器文件
            /Fx 將插入的代碼與源文件合并

            調試

            選項 作用
            /GS 緩沖區安全檢查
            /GZ 與 /RTC1 相同
            /RTC 啟用運行時錯誤檢查
            /Wp64 檢測 64 位可移植性問題
            /Yd 將完整的調試信息放在所有對象文件中
            /Yl 創建調試庫時插入 PCH 引用
            /Z7 生成與 C 7.0 兼容的調試信息
            /Zd 生成行號
            /Zi 生成完整的調試信息

            預處理器

            選項 作用
            /AI 指定在解析傳遞到#using 指令的文件引用時搜索的目錄
            /c 在預處理期間保留注釋
            /D 定義常數和宏
            /E 將預處理器輸出復制到標準輸出
            /EP 將預處理器輸出復制到標準輸出
            /Fl 預處理指定的包含文件
            /FU 強制使用文件名,就像它已被傳遞到#using 指令一樣
            /I 在目錄中搜索包含文件
            /P 將預處理器輸出寫入文件
            /U 移除預定義宏
            /U 移除所有的預定義宏
            /X 忽略標準包含目錄
            /ZI 將調試信息包含在與“編輯并繼續”兼容的程序數據庫中

            (附“編輯并繼續”:編輯并繼續”處理大多數類型的代碼更改。但是,在程序執行期間,某些更改無法應用。若要應用這些更改,必須暫停執行并生成新版本的代碼。

            在調試會話期間不能應用下列 C/C++ 更改:
            大多數的全局或靜態數據的更改。
            從其他計算機復制并且未在本地生成的可執行文件的更改。
            影響一個對象(如類的數據成員)布局的數據類型的更改。
            添加超過 64k 字節的新代碼或數據。
            添加要求在指令指針前存在構造函數的變量。
            影響需要運行時初始化的代碼的更改。
            在某些實例中,添加異常處理程序。
            資源文件的更改。
            只讀文件中的代碼更改。
            沒有相應 PDB 文件的代碼的更改。
            沒有對象文件的代碼的更改。

            在以下調試方案中,“編輯并繼續”不可用:
            在 Windows 98 上調試。
            混合模式(本機/托管)調試。
            SQL 調試。
            調試 Dr. Watson 轉儲。
            在未選擇“在未處理的異常上展開調用堆棧”選項的情況下,在發生未處理的異常之后編輯代碼。
            調試嵌入式運行庫應用程序。
            從“調試”菜單中使用“附加到”調試應用程序,而不是使用“啟動”運行應用程序。
            調試優化后的代碼。
            當目標為 64 位應用程序時,調試托管代碼。如果想要使用“編輯并繼續”,必須將目標平臺設置為 x86。((“Project 屬性”對話框->“編譯”選項卡->“高級編譯器”設置。)
            如果由于生成錯誤無法生成新版本的代碼,則對舊版本的代碼進行調試)

            語言

            選項 作用
            /noBool 取消 C++ bool、true 和 false 關鍵字
            /vd 取消或啟用隱藏的 vtordisp 類成員
            /vmb 對指向成員的指針使用最佳的基
            /vmg 對指向成員的指針使用完全一般性
            /vmm 聲明多重繼承
            /vms 聲明單一繼承
            /vmv 聲明虛擬繼承
            /Za 禁用語言擴展
            /Zc 在 /Ze 下指定標準行為
            /Ze 啟用語言擴展
            /Zg 生成函數原型
            /Zl 從 .obj 文件中移除默認庫名
            /Zp n 封裝結構成員
            /Zs 只檢查語法

            鏈接

            選項 作用
            /F 設置堆棧大小
            /LD 創建動態鏈接庫
            /LDd 創建調試動態鏈接庫
            /link 將指定的選項傳遞給 LINK
            /MD 使用 MSVCRT.lib 編譯以創建多線程 DLL
            /MDd 使用 MSVCRTD.lib 編譯以創建調試多線程 DLL
            /ML 使用 LIBC.lib 編譯以創建單線程可執行文件
            /MLd 使用 LIBCD.lib 編譯以創建調試單線程可執行文件
            /MT 使用 LIBCMT.lib 編譯以創建多線程可執行文件
            /MTd 使用 LIBCMTD.lib 編譯以創建調試多線程可執行文件

            預編譯頭

            選項 作用
            /Y- 忽略當前生成中的所有其他預編譯頭編譯器選項
            /Yc 創建預編譯頭文件
            /Yd 將完整的調試信息放在所有對象文件中
            /Yu 在生成期間使用預編譯頭文件
            /YX 自動處理預編譯頭

            雜項

            選項 作用
            @ 指定響應文件
            /? 列出編譯器選項
            /c 編譯但不鏈接
            /H 限制外部(公共)名稱的長度
            /HELP 列出編譯器選項
            /J 更改默認的 char 類型
            /NOLOGO 取消顯示登錄版權標志
            /QI0f 確保 Pentium 0F 指令沒有問題
            /QIfdiv FDIV、FPREM、FPTAN 和 FPATAN 指令有缺陷的 Intel Pentium 微處理器的變通方法
            QIfist 當需要從浮點類型轉換為整型時取消 Helper 函數 _ftol 的調用
            /showIncludes 在編譯期間顯示所有包含文件的列表
            /Tc
            /Tc 指定 C 源文件
            /Tp
            /Tp 指定 C++ 源文件
            /V 設置版本字符串
            /w 設置警告等級
            /w 禁用所有警告
            /Wall 啟用所有警告,包括默認情況下禁用的警告
            /WL 在從命令行編譯 C++ 源代碼時啟用錯誤信息和警告消息的單行診斷
            /Zm 設置編譯器的內存分配限制


            CL 命令行使用下列語法:

            CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]

            下表說明CL 命令的輸入項意義

            option 一個或多個 CL 選項。請注意,所有選項都應用于所有指定的源文件。選項是由一個正斜杠 (/) 或一個短劃線 (–) 指定的。如果某個選項帶有參數,則該選項的說明指定在選項和參數之間是否允許有空格。選項名(/HELP 選項除外)區分大小寫。有關更多信息,請參閱 CL 選項的順序。

            file 一個或多個源文件、.obj 文件或庫的名稱。CL 編譯源文件并將 .obj 文件和庫的名稱傳遞給鏈接器。有關更多信息,請參閱 CL 文件名語法。

            lib 一個或多個庫名。CL 將這些名稱傳遞給鏈接器。

            command-file 包含多個選項和文件名的文件。有關更多信息,請參閱 CL 命令文件。

            link-opt 一個或多個鏈接器選項。CL 將這些選項傳遞給鏈接器。

            您可以指定任意數目的選項、文件名和庫名,條件是命令行上的字符數不超過 1024,該限制是操作系統指定的。

            CL 命令文件請參見
            設置編譯器選項 | 編譯器選項
            命令文件是一個文本文件,它包含您另外在命令行上鍵入或使用 CL 環境變量指定的選項和文件名。CL 接受在 CL 環境變量中或命令行上用作參數的編譯器命令文件。與命令行或 CL 環境變量不同,命令文件允許使用多行選項和文件名。

            命令文件中的選項和文件名將根據 CL 環境變量中或命令行上的命令文件名的位置被進行處理。但是,如果 /link 選項出現在命令文件中,則該行其余部分的所有選項將被傳遞給鏈接器。命令文件的后面幾行中的選項和命令行上命令文件調用之后的選項仍被作為編譯器選項接受。

            命令文件一定不能包含 CL 命令。每個選項必須在同一行上開始和結束;不能使用反斜杠 (\) 跨行組合一個選項。

            命令文件用一個 @ 符后接一個文件名指定;該文件名可指定絕對路徑或相對路徑。

             

            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/mickey139/archive/2009/06/01/4232489.aspx

            posted @ 2009-09-02 14:00 ggh 閱讀(1204) | 評論 (0)編輯 收藏

            后綴是bat的文件就是批處理文件,是一種文本文件。簡單的說,它的作用就是自動的連續執行多條命令,批處理文件的內容就是一條一條的命令。那它有什么用呢?

              比如,在啟動wps軟件時,每次都必須執行

              C:〉cd wps
              C:WPS〉spdos
              C:WPS〉py
              C:WPS〉wbx
              C:WPS〉wps

              如果每次用WPS之前都這樣執行一次,您是不是覺得很麻煩呢?

              如果有一個方法,只需編寫一個批處理文件,就會自動執行剛才的所有命令,您想不想學呢?

              當您看完此節,自己編寫的第一個批處理文件順利執行時,您一定會大吃一驚的。

              此外電腦每次啟動時都會尋找autoexec.bat這條批處理文件,從而可執行一些每次開機都要執行的命令,如設置路徑path、加載鼠標驅動mouse、磁盤加速smartdrv等,可以使您的電腦真正自動化。

              echo、@、call、pause、rem 是批處理文件最常用的幾個命令,我們就從他們開始學起。 echo 表示顯示此命令后的字符
              echo off 表示在此語句后所有運行的命令都不顯示命令行本身
              @ 與echo off相象,但它是加在其它命令行的最前面,表示運行時不顯示命令行本身。
              call 調用另一條批處理文件(如果直接調用別的批處理文件 ,執行完那條文件后將無法執行當前文件后續命令)
              pause 運行此句會暫停,顯示Press any key to continue... 等待用戶按任意鍵后繼續
              rem 表示此命令后的字符為解釋行,不執行,只是給自己今后查找用的


              例:用edit編輯a.bat文件,輸入下列內容后存盤為c:\a.bat,執行該批處理文件后可實現:將根目錄中所有文件寫入 a.txt中,啟動UCDOS,進入WPS等功能。

              批處理文件的內容為:         文件表示:

                echo off            不顯示命令行

                dir c:\*.* >a.txt       將c盤文件列表寫入a.txt

                call c:\ucdos\ucdos.bat    調用ucdos

                echo 你好            顯示“你好”

                pause              暫停,等待按鍵繼續

                rem 使用wps           注釋將使用wps

                cd ucdos            進入ucdos目錄

                wps               使用wps 

              批處理文件中還可以像C語言一樣使用參數,這只需用到一個參數表示符%。

               %表示參數,參數是指在運行批處理文件時在文件名后加的字符串。變量可以從 %0到%9,%0表示文件名本身,字符串用%1到%9順序表示。

              例如,C:根目錄下一批處理文件名為f.bat,內容為 format %1

              則如果執行C:\>f a:    則實際執行的是format a:

              又如C:根目錄下一批處理文件的名為t.bat,內容為 type %1 type %2

              那么運行C:\>t a.txt b.txt 將順序地顯示a.txt和b.txt文件的內容

              if goto choice for 是批處理文件中比較高級的命令,如果這幾個你用得很熟練,你就是批處理文件的專家啦。

               if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
              1、if “參數” == “字符串”  待執行的命令
              參數如果等于指定的字符串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)
              如if “%1”== “a” format a:

              2、if exist 文件名  待執行的命令
              如果有指定的文件,則條件成立,運行命令,否則運行下一句。如if exist config.sys edit config.sys

              3、if errorlevel 數字  待執行的命令
              如果返回碼等于指定的數字,則條件成立,運行命令,否則運行下一句。如if errorlevel 2 goto x2  DOS程序運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼

              goto 批處理文件運行到這里將跳到goto 所指定的標號處, 一般與if配合使用。 如:

              goto end

              :end
              echo this is the end

              標號用 :字符串 表示,標號所在行不被執行

              choice 使用此命令可以讓用戶輸入一個字符,從而運行不同的命令。使用時應該加/c:參數,c:后應寫提示可輸入的字符,之間無空格。它的返回碼為1234……

              如: choice /c:dme defrag,mem,end
              將顯示
              defrag,mem,end[D,M,E]?

              例如,test.bat的內容如下:
              @echo off
              choice /c:dme defrag,mem,end
              if errorlevel 3 goto defrag 應先判斷數值最高的錯誤碼
              if errorlevel 2 goto mem
              if errotlevel 1 goto end

              :defrag
              c:\dos\defrag
              goto end

              :mem
              mem
              goto end

              :end
              echo good bye

              此文件運行后,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e ,然后if語句將作出判斷,d表示執行標號為defrag的程序段,m表示執行標號為mem的程序段,e表示執行標號為end的程序段,每個程序段最后都以goto end將程序跳到end標號處,然后程序將顯示good bye,文件結束。

              for 循環命令,只要條件符合,它將多次執行同一命令。

              格式FOR [%%f] in (集合) DO [命令]
              只要參數f在指定的集合內,則條件成立,執行命令

              如果一條批處理文件中有一行:
              for %%c in (*.bat *.txt) do type %%c
              含義是如果是以bat或txt結尾的文件,則顯示文件的內容。

              autoexec.bat 

              DOS在啟動會自動運行autoexec.bat這條文件,一般我們在里面裝載每次必用的程序,如: path(設置路徑)、smartdrv(磁盤加速)、 mouse(鼠標啟動)、mscdex(光驅連接)、 doskey(鍵盤管理)、set(設置環境變量)等。

              如果啟動盤根目錄中沒有這個文件,電腦會讓用戶輸入日期和時間。

              例如,一個典型的autoexec.bat內容如下:

              @echo off                     不顯示命令行

              prompt $p$g                    設置提示符前有目錄提示

              path c:\dos;c:\;c:\windows;c:\ucdos;c:\tools    設置路徑

              lh c:\dos\doskey.com                加載鍵盤管理

              lh c:\mouse\mouse.com               加載鼠標管理

              lh c:\dos\smartdrv.exe               加載磁盤加速管理

              lh c:\dos\mscdex /S /D:MSCD000 /M:12 /V      加載CD-ROM驅動

              set temp=c:\temp                  設置臨時目錄

            posted @ 2009-09-02 10:56 ggh 閱讀(186) | 評論 (0)編輯 收藏

            2009年8月28日

            系統正常狀態下的進程和進程解釋

            正常windows XP SP2每一個進程的含義---進程列表

            正常windows XP SP2每一個進程的含義---進程列表--->

            進程0:[System Process](優先級:暫缺)5a
            進程1:System(優先級:標準)xf
            進程2:\SystemRoot\System32\smss.exe(優先級:標準)J'{
            進程3:CSRSS.EXE(優先級:高)sE?b
            進程4:\??\D:\WINDOWS\system32\winlogon.exe(優先級:高)x,Y_7
            進程5:D:\WINDOWS\system32\services.exe(優先級:標準)7U9>p@
            進程6:D:\WINDOWS\system32\lsass.exe(優先級:標準)Z?r_.
            進程7:D:\WINDOWS\system32\svchost.exe(優先級:標準)Nz
            進程8:SVCHOST.EXE(優先級:標準)CZO
            進程9:D:\WINDOWS\System32\svchost.exe(優先級:標準)yGh>
            進程10:SVCHOST.EXE(優先級:標準)o,&Y
            進程11:SVCHOST.EXE(優先級:標準)A
            進程12:D:\WINDOWS\system32\spoolsv.exe(優先級:標準)T
            進程13:D:\WINDOWS\Explorer.EXE(優先級:標準)i5d5
            進程14:D:\WINDOWS\system32\ctfmon.exe(優先級:標準)aeI
            進程15:D:\WINDOWS\system32\crypserv.exe(優先級:高)~^
            進程16:D:\WINDOWS\System32\inetsrv\inetinfo.exe(優先級:標準)DF.
            進程17:WDFMGR.EXE(優先級:標準)g3Qg@
            進程18:ALG.EXE(優先級:標準)f7Hfr
            進程19:D:\WINDOWS\System32\svchost.exe(優先級:標準)qM`!1_
            進程20:wmiprvse.exe(優先級:標準)

            ---進程說明---j/hNx


            進程0:[System Process]<)yYb
            公司:g\!H
            描述:X
            版權:tq^3
            文件版本:j
            產品名稱:7m
            產品版本:

            進程1:SystemBF1}~_
            公司:1Q
            描述:ls
            版權:@ho=3r
            文件版本:PFE
            產品名稱:=+_\sF
            產品版本

            進程2:\SystemRoot\System32\smss.exe2Jm
            公司:(:n
            描述:s"jo7'
            版權:Iek0b
            文件版本:^Jr
            產品名稱:gg6y2:
            產品版本:

            進程3:CSRSS.EXE*
            公司:Microsoft Corporation\:e
            描述:Client Server Runtime ProcessEk\K+[
            版權:? Microsoft Corporation. All rights reserved.r*t
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158))"A
            產品名稱:Microsoft? Windows? Operating SystemuK
            產品版本:5.1.2600.2180mX

             .v[c
            進程4:\??\D:\WINDOWS\system32\winlogon.exefHnA
            公司: nF^&L
            描述:wmv3
            版權:@k
            文件版本:-o`
            產品名稱:EDm"
            產品版本:

            進程5:D:\WINDOWS\system32\services.exe|>n6
            公司:Microsoft Corporation_
            描述:Services and Controller app-o4nu|
            版權:(C) Microsoft Corporation. All rights reserved.xq(
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)y#\d`
            產品名稱:Microsoft(R) Windows(R) Operating Systemj
            產品版本:5.1.2600.2180K

            進程6:D:\WINDOWS\system32\lsass.exeI
            公司:Microsoft Corporationt$wb
            描述:LSA Shell (Export Version)\/Z
            版權:? Microsoft Corporation. All rights reserved.:9{='
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)diO+s
            產品名稱:Microsoft? Windows? Operating SystemK
            產品版本:5.1.2600.2180\}

            進程7:D:\WINDOWS\system32\svchost.exe`S3?公司:Microsoft Corporation_
            描述:Generic Host Process for Win32 Services!j}
            版權:? Microsoft Corporation. All rights reserved.-}_"
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)U
            產品名稱:Microsoft? Windows? Operating SystemN*uEO
            產品版本:5.1.2600.2180P

            進程8:SVCHOST.EXEcP}J
            公司:Microsoft CorporationJ7Y
            描述:Generic Host Process for Win32 Servicesms$^
            版權:? Microsoft Corporation. All rights reserved.n.+
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158);*^eP
            產品名稱:Microsoft? Windows? Operating System[
            產品版本:5.1.2600.2180\

            進程9:D:\WINDOWS\System32\svchost.exeuhO
            公司:Microsoft Corporatione8
            描述:Generic Host Process for Win32 ServicesQwQN
            版權:? Microsoft Corporation. All rights reserved.gim
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)w
            產品名稱:Microsoft? Windows? Operating System=(1
            產品版本:5.1.2600.2180N

            進程10:SVCHOST.EXEy#-f
            公司:Microsoft CorporationhMy}
            描述:Generic Host Process for Win32 Servicesl,M
            版權:? Microsoft Corporation. All rights reserved.%!-}
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)Jwg2
            產品名稱:Microsoft? Windows? Operating SystemuER
            產品版本:5.1.2600.2180\

            進程11:SVCHOST.EXE]
            公司:Microsoft CorporationhC&>?1
            描述:Generic Host Process for Win32 Services2e&ZnS
            版權:? Microsoft Corporation. All rights reserved.A"]ndF
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158):'j_`$
            產品名稱:Microsoft? Windows? Operating Systemb
            產品版本:5.1.2600.2180j

            進程12:D:\WINDOWS\system32\spoolsv.exe,U`?
            公司:Microsoft Corporation Rz
            描述:Spooler SubSystem App5~+m~
            版權:? Microsoft Corporation. All rights reserved.Rh_c
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)F
            產品名稱:Microsoft? Windows? Operating System7Cx{pT
            產品版本:5.1.2600.2180P

            進程13:D:\WINDOWS\Explorer.EXEH4vJ|
            公司:Microsoft CorporationXkY
            描述:Windows Explorer.YHP
            版權:(C) Microsoft Corporation. All rights reserved.$=ql!?
            文件版本:6.00.2900.2180 (xpsp_sp2_rtm.040803-2158)>5})V
            產品名稱:Microsoft(R) Windows(R) Operating Systemwg
            產品版本:6.00.2900.2180l2^:

            進程14:D:\WINDOWS\system32\ctfmon.exeT9X
            公司:Microsoft Corporationpv
            描述:CTF Loader`jVUz!
            版權:? Microsoft Corporation. All rights reserved.H)SdL[
            文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)i)q%
            產品名稱:Microsoft? Windows? Operating SystemR-F
            產品版本:5.1.2600.2180>

            進程15:D:\WINDOWS\system32\crypserv.exesg(
            公司:Kenonic Controls Ltd.F-[
            描述:CrypKey NT ServiceE^~&^Z
            版權:Copyright ? 2000h)Y
            文件版本:5.4.0R\8z_1
            產品名稱:CrypKey Software Licensing System50"H]7
            產品版本:5.4"sq`

            進程16:D:\WINDOWS\System32\inetsrv\inetinfo.exeZxvi_?
            公司:Microsoft Corporation<MF


            最基本的系統進程(也就是說,這些進程是系統運行的基本條件,有了這些進程,系統就能正常運行):
            smss.exe Session Manager
            csrss.exe 子系統服務器進程
            winlogon.exe 管理用戶登錄
            services.exe 包含很多系統服務
            lsass.exe 管理 IP 安全策略以及啟動 ISAKMP/Oakley (IKE) 和 IP 安全驅動程序。(系統服務)
            產生會話密鑰以及授予用于交互式客戶/服務器驗證的服務憑據(ticket)。(系統服務)
            svchost.exe 包含很多系統服務
            svchost.exe
            SPOOLSV.EXE 將文件加載到內存中以便遲后打印。(系統服務)
            explorer.exe 資源管理器
            internat.exe 托盤區的拼音圖標
            附加的系統進程(這些進程不是必要的,你可以根據需要通過服務管理器來增加或減少):
            mstask.exe 允許程序在指定時間運行。(系統服務)
            regsvc.exe 允許遠程注冊表操作。(系統服務)
            winmgmt.exe 提供系統管理信息(系統服務)。
            inetinfo.exe 通過 Internet 信息服務的管理單元提供 FTP 連接和管理。(系統服務)
            tlntsvr.exe 允許遠程用戶登錄到系統并且使用命令行運行控制臺程序。(系統服務)
            允許通過 Internet 信息服務的管理單元管理 Web 和 FTP 服務。(系統服務)
            tftpd.exe 實現 TFTP Internet 標準。該標準不要求用戶名和密碼。遠程安裝服務的一部分。(系統服務)
            termsrv.exe 提供多會話環境允許客戶端設備訪問虛擬的 Windows 2000 Professional 桌面會話以及運行在服務器上的基于 Windows 的程序。(系統服務)
            dns.exe 應答對域名系統(DNS)名稱的查詢和更新請求。(系統服務)
            以下服務很少會用到,上面的服務都對安全有害,如果不是必要的應該關掉tcpsvcs.exe 提供在 PXE 可遠程啟動客戶計算機上遠程安裝 Windows 2000 Professional 的能力。(系統服務)
            支持以下 TCP/IP 服務:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。(系統服務)
            ismserv.exe 允許在 Windows Advanced Server 站點間發送和接收消息。(系統服務)
            ups.exe 管理連接到計算機的不間斷電源(UPS)。(系統服務)
            wins.exe 為注冊和解析 NetBIOS 型名稱的 TCP/IP 客戶提供 NetBIOS 名稱服務。(系統服務)
            llssrv.exe License Logging Service(system service)
            ntfrs.exe 在多個服務器間維護文件目錄內容的文件同步。(系統服務)
            RsSub.exe 控制用來遠程儲存數據的媒體。(系統服務)
            locator.exe 管理 RPC 名稱服務數據庫。(系統服務)
            lserver.exe 注冊客戶端許可證。(系統服務)
            dfssvc.exe 管理分布于局域網或廣域網的邏輯卷。(系統服務)
            clipsrv.exe 支持“剪貼簿查看器”,以便可以從遠程剪貼簿查閱剪貼頁面。(系統服務)
            msdtc.exe 并列事務,是分布于兩個以上的數據庫,消息隊列,文件系統,或其它事務保護資源管理器。(系統服務)
            faxsvc.exe 幫助您發送和接收傳真。(系統服務)
            cisvc.exe Indexing Service(system service)
            dmadmin.exe 磁盤管理請求的系統管理服務。(系統服務)
            mnmsrvc.exe 允許有權限的用戶使用 NetMeeting 遠程訪問 Windows 桌面。(系統服務)
            netdde.exe 提供動態數據交換 (DDE) 的網絡傳輸和安全特性。(系統服務)
            smlogsvc.exe 配置性能日志和警報。(系統服務)
            rsvp.exe 為依賴質量服務(QoS)的程序和控制應用程序提供網絡信號和本地通信控制安裝功能。(系統服務)
            RsEng.exe 協調用來儲存不常用數據的服務和管理工具。(系統服務)
            RsFsa.exe 管理遠程儲存的文件的操作。(系統服務)
            grovel.exe 掃描零備份存儲(SIS)卷上的重復文件,并且將重復文件指向一個數據存儲點,以節省磁盤空間。(系統服務)
            SCardSvr.exe 對插入在計算機智能卡閱讀器中的智能卡進行管理和訪問控制。(系統服務)
            snmp.exe 包含代理程序可以監視網絡設備的活動并且向網絡控制臺工作站匯報。(系統服務)
            snmptrap.exe 接收由本地或遠程 SNMP 代理程序產生的陷阱消息,然后將消息傳遞到運行在這臺計算機上 SNMP 管理程序。(系統服務)
            UtilMan.exe 從一個窗口中啟動和配置輔助工具。(系統服務)
            msiexec.exe 依據 .MSI 文件中包含的命令來安裝、修復以及刪除軟件。(系統服務)


            詳細說明:


            win2k運行進程
            Svchost.exe
            Svchost.exe文件對那些從動態連接庫中運行的服務來說是一個普通的主機進程名。Svhost.exe文件定位在系統的%systemroot%\system32文件夾下。在啟動的時候,Svchost.exe檢查注冊表中的位置來構建需要加載的服務列表。這就會使多個Svchost.exe在同一時間運行。每個Svchost.exe的回話期間都包含一組服務, 以至于單獨的服務必須依靠Svchost.exe怎樣和在那里啟動。這樣就更加容易控制和查找錯誤。
            Svchost.exe 組是用下面的注冊表值來識別。

            HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost
            每個在這個鍵下的值代表一個獨立的Svchost組,并且當你正在看活動的進程時,它顯示作為一個單獨的例子。每個鍵值都是REG_MULTI_SZ類型的值而且包括運行在Svchost組內的服務。每個Svchost組都包含一個或多個從注冊表值中選取的服務名,這個服務的參數值包含了一個ServiceDLL值。
            HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service 更多的信息
            為了能看到正在運行在Svchost列表中的服務。
            開始-運行-敲入cmd
            然后在敲入 tlist -s (tlist 應該是win2k工具箱里的冬冬)
            Tlist 顯示一個活動進程的列表。開關 -s 顯示在每個進程中的活動服務列表。如果想知道更多的關于進程的信息,可以敲 tlist pid。

            Tlist 顯示Svchost.exe運行的兩個例子。
            0 System Process
            8 System
            132 smss.exe
            160 csrss.exe Title:
            180 winlogon.exe Title: NetDDE Agent
            208services.exe
            Svcs:

            AppMgmt,Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,LanmanWorkstation,LmHost

            s,Messenger,PlugPlay,ProtectedStorage,seclogon,TrkWks,W32Time,Wmi
            220 lsass.exe Svcs: Netlogon,PolicyAgent,SamSs
            404 svchost.exe Svcs: RpcSs
            452 spoolsv.exe Svcs: Spooler
            544 cisvc.exe Svcs: cisvc
            556 svchost.exe Svcs: EventSystem,Netman,NtmsSvc,RasMan,SENS,TapiSrv
            580 regsvc.exe Svcs: RemoteRegistry
            596 mstask.exe Svcs: Schedule
            660 snmp.exe Svcs: SNMP
            728 winmgmt.exe Svcs: WinMgmt
            852 cidaemon.exe Title: OleMainThreadWndName
            812 explorer.exe Title: Program Manager
            1032 OSA.EXE Title: Reminder
            1300 cmd.exe Title: D:\WINNT5\System32\cmd.exe - tlist -s
            1080 MAPISP32.EXE Title: WMS Idle
            1264 rundll32.exe Title:
            1000 mmc.exe Title: Device Manager
            1144 tlist.exe
            在這個例子中注冊表設置了兩個組。
            HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost:
            netsvcs: Reg_Multi_SZ: EventSystem Ias Iprip Irmon Netman Nwsapagent Rasauto Rasman

            Remoteaccess SENS Sharedaccess Tapisrv Ntmssvc
            rpcss :Reg_Multi_SZ: RpcSs

            smss.exe

            csrss.exe

            這個是用戶模式Win32子系統的一部分。csrss代表客戶/服務器運行子系統而且是一個基本的子系統必須一直運行。csrss 負責控制windows,創建或者刪除線程和一些16位的虛擬MS-DOS環境。

            explorer.exe
            這是一個用戶的shell(我實在是不知道怎么翻譯shell),在我們看起來就像任務條,桌面等等。這個進程并不是像你想象的那樣是作為一個重要的進程運行在windows中,你可以從任務管理器中停掉它,或者重新啟動。 通常不會對系統產生什么負面影響。

            internat.exe

            這個進程是可以從任務管理器中關掉的。
            internat.exe在啟動的時候開始運行。它加載由用戶指定的不同的輸入點。輸入點是從注冊表的

            這個位置
            HKEY_USERS\.DEFAULT\Keyboard Layout\Preload 加載內容的。
            internat.exe 加載“EN”圖標進入系統的圖標區,允許使用者可以很容易的轉換不同的輸入點。
            當進程停掉的時候,圖標就會消失,但是輸入點仍然可以通過控制面板來改變。

            lsass.exe
            這個進程是不可以從任務管理器中關掉的。
            這是一個本地的安全授權服務,并且它會為使用winlogon服務的授權用戶生成一個進程。這個進程是
            通過使用授權的包,例如默認的msgina.dll來執行的。如果授權是成功的,lsass就會產生用戶的進入
            令牌,令牌別使用啟動初始的shell。其他的由用戶初始化的進程會繼承這個令牌的。

            mstask.exe
            這個進程是不可以從任務管理器中關掉的。
            這是一個任務調度服務,負責用戶事先決定在某一時間運行的任務的運行。

            smss.exe
            這個進程是不可以從任務管理器中關掉的。
            這是一個會話管理子系統,負責啟動用戶會話。這個進程是通過系統進程初始化的并且對許多活

            動的,
            包括已經正在運行的Winlogon,Win32(Csrss.exe)線程和設定的系統變量作出反映。在它啟動

            這些
            進程后,它等待Winlogon或者Csrss結束。如果這些過程時正常的,系統就關掉了。如果發生了什


            不可預料的事情,smss.exe就會讓系統停止響應(就是掛起)。

            spoolsv.exe
            這個進程是不可以從任務管理器中關掉的。
            緩沖(spooler)服務是管理緩沖池中的打印和傳真作業。

            service.exe
            這個進程是不可以從任務管理器中關掉的。
            大多數的系統核心模式進程是作為系統進程在運行。

            System Idle Process
            這個進程是不可以從任務管理器中關掉的。
            這個進程是作為單線程運行在每個處理器上,并在系統不處理其他線程的時候分派處理器的時間



            taskmagr.exe
            這個進程是可以在任務管理器中關掉的。
            這個進程就是任務管理器。

            winlogon.exe
            這個進程是管理用戶登錄和推出的。而且winlogon在用戶按下CTRL+ALT+DEL時就激活了,顯示安

            全對話框。

            winmgmt.exe
            winmgmt是win2000客戶端管理的核心組件。當客戶端應用程序連接或當管理程序需要他本身的服務時這個進程初始化

            posted @ 2009-08-28 18:21 ggh 閱讀(320) | 評論 (0)編輯 收藏

            taskkill說明

            用于結束進程的DOS命令


            TASKKILL [/S system [/U username [/P [password]]]]
            { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]

            描述:
            這個命令行工具可用來結束至少一個進程。
            可以根據進程 id 或圖像名來結束進程。

            參數列表:
            /Ssystem 指定要連接到的遠程系統。

            /U[domain\]user指定應該在哪個用戶上下文
            執行這個命令。

            /P[password] 為提供的用戶上下文指定
            密碼。如果忽略,提示輸入。

            /F 指定要強行終止
            進程。

            /FI filter 指定篩選進或篩選出查詢的
            的任務。

            /PIDprocess id 指定要終止的進程的
            PID。

            /IM image name 指定要終止的進程的
            圖像名。通配符 '*'
            可用來指定所有圖像名。

            /T Tree kill: 終止指定的進程
            和任何由此啟動的子進程。

            /? 顯示幫助/用法。

            篩選器:
            篩選器名有效運算符有效值
            ----------- --------------- --------------
            STATUSeq, ne運行 | 沒有響應
            IMAGENAME eq, ne圖像名
            PID eq, ne, gt, lt, ge, lePID 值
            SESSION eq, ne, gt, lt, ge, le會話編號
            CPUTIME eq, ne, gt, lt, ge, leCPU 時間,格式為
            hh:mm:ss。
            hh - 時,
            mm - 鐘,ss - 秒
            MEMUSAGEeq, ne, gt, lt, ge, le內存使用,單位為 KB
            USERNAMEeq, ne用戶名,格式為
            [domain\]user
            MODULES eq, neDLL 名
            SERVICESeq, ne服務名
            WINDOWTITLE eq, ne窗口標題

            注意: 只有帶有篩選器的情況下,才能跟 /IM 切換使用通配符 '*'。

            注意: 遠程進程總是要強行終止,
            不管是否指定了 /F 選項。

            例如:
            TASKKILL /S system /F /IM notepad.exe /T
            TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
            TASKKILL /F /IM notepad.exe /IM mspaint.exe
            TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
            TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
            TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *
            TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

            Windows DOs命令之Taskkill


            語法
            taskkill [/s Computer] [/u Domain\User [/p Password]]] [/fi FilterName] [/pid ProcessID]|[/im ImageName] [/f][/t]

            參數
            /s Computer
            指定遠程計算機名稱或 IP 地址(不能使用反斜杠)。默認值是本地計算機。
            /u Domain\User
            運行具有由 User 或 Domain\User 指定用戶的帳戶權限命令。默認值是當前登錄發布命令的計算機的用戶權限。
            /p Password
            指定用戶帳戶的密碼,該用戶帳戶在 /u 參數中指定。
            /fi FilterName
            指定將要終止或不終止的過程的類型。以下是有效的篩選器名稱、運算符和值: 名稱 運算符 值
            Hostname eq, ne 任何有效字符串。
            狀態 eq, ne RUNNING|NOT RESPONDING
            Imagename eq, ne 任何有效字符串。
            PID eg, ne, gt, lt, ge, le 任何有效的正整數。
            Session eg, ne, gt, lt, ge, le 任何有效的會話數。
            CPUTime eq, ne, gt, lt, ge, le hh:mm:ss 格式的有效時間。mm 參數和 ss 參數應在 0 到 59 之間,hh 參數可以是任何一個有效的無符號的數值。
            Memusage eg, ne, gt, lt, ge, le 任何有效的整數。
            用戶名 eq, ne 任何有效的用戶名 ([Domain\]User)。
            服務 eq, ne 任何有效字符串。  
            Windowtitle eq, ne 任何有效字符串。  

            /pid ProcessID
            指定將終止的過程的過程 ID。
            /im ImageName
            指定將終止的過程的圖像名稱。使用通配符 (*) 指定所有圖像名稱。
            /f
            指定將強制終止的過程。對于遠程過程可忽略此參數,所有遠程過程都將被強制終止。
            /t
            指定終止與父進程一起的所有子進程,常被認為是“樹終止”。
            /?
            在命令提示符顯示幫助。
            注釋
            只有與篩選器一起指定時,通配符 (*) 才能被接受。
            無論是否指定 /f 參數,都會始終強制執行對遠程過程的終止操作。
            向 HOSTNAME 篩選器提供計算機名將導致關機和中止所有過程。
            使用 tasklist 確定要終止的過程的過程 ID (PID)。
            Taskkill 替代了 Kill 工具。
            范例
            下面的范例說明如何使用 taskkill 命令:

            taskkill /pid 1230 /pid 1241 /pid 1253
            taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe
            taskkill /s srvmain /f /im notepad.exe
            taskkill /s srvmain /u maindom\hiropln /p
            p@ssW23 /fi "IMAGENAME eq note*" /im *
            taskkill /s srvmain /u maindom\hiropln /fi "USERNAME ne NT*" /im *
            taskkill /f /fi "PID ge 1000" /im *
            Tasklist命令用來顯示運行在本地或遠程計算機上的所有進程,帶有多個執行參數。

            使用格式
            Tasklist [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]

            參數含義
            /S system 指定連接到的遠程系統。

            /U [domain\]user 指定使用哪個用戶執行這個命令。

            /P [password] 為指定的用戶指定密碼。

            /M [module] 列出調用指定的DLL模塊的所有進程。如果沒有指定模塊名,顯示每個進程加載的所有模塊。

            /SVC 顯示每個進程中的服務。

            /V 顯示詳細信息。

            /FI filter 顯示一系列符合篩選器指定的進程。

            /FO format 指定輸出格式,有效值:TABLE、LIST、CSV。

            /NH 指定輸出中不顯示欄目標題。只對TABLE和CSV格式有效。

            應用實例。
            1.查看本機進程
            在“命令提示符”中輸入Tasklist命令即可顯示本機的所有進程(圖1)。本機的顯示結果由5部分組成:圖像名(進程名)、PID、會話名、會話#和內存使用。

            2.查看遠程系統的進程
            在命令提示符下輸入“Tasklist /s 218.22.123.26 /u jtdd /p 12345678”(不包括引號)即可查看到IP地址為218.22.123.26的遠程系統的進程(圖2)。其中/s參數后的“218.22.123.26”指要查看的遠程系統的IP地址,/u后的“jtdd”指Tasklist命令使用的用戶賬號,它必須是遠程系統上的一個合法賬號,/p后的“12345678”指jtdd賬號的密碼。
            注意:使用Tasklist命令查看遠程系統的進程時,需要遠程機器的RPC服務的支持,否則,該命令不能正常使用。

            3.查看系統進程提供的服務
            Tasklist命令不但可以查看系統進程,而且還可以查看每個進程提供的服務。如查看本機進程SVCHOST.EXE提供的服務,在命令提示符下輸入“Tasklist /svc”命令即可(圖3)。你會驚奇地發現,有4個SVCHOST.EXE進程,而總共有二十幾項服務使用這個進程。
            對于遠程系統來說,查看系統服務也很簡單,使用“Tasklist /s 218.22.123.26 /u jtdd /p 12345678 /svc”命令,就可以查看IP地址為218.22.123.26的遠程系統進程所提供的服務。

            4.查看調用DLL模塊文件的進程列表
            要查看本地系統中哪些進程調用了shell32.dll模塊文件,只需在命令提示符下輸入“Tasklist /m shell32.dll”即可顯示這些進程的列表。

            5.使用篩選器查找指定的進程
            在命令提示符下輸入“TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running”,就可以列出系統中正在運行的非SYSTEM狀態的所有進程。其中“/FI”為篩選器參數,“ne”和“eq”為關系運算符“不相等”和“相等”。

            小提示
            談到“Tasklist”命令,我們就不得不提到它的孿生兄弟“Taskkill”命令,顧名思義,它是用來關掉進程的。
            要關掉本機的notepad.exe進程,有兩種方法:
            1.先使用Tasklist查找它的PID,假設系統顯示本機notepad.exe進程的PID值為1132,然后運行“Taskkill /pid 1132”命令即可。其中“/pid”參數后面是要終止進程的PID值。
            2.直接運行“Taskkill /IM notepad.exe”命令,其中“/IM”參數后面為進程的圖像名。

            ================
            查看本地進程:tasklist /svc
            查殺本地進程:taskkill /pid
                                         taskkill /im explorer.exe /f  
                                         taskkill /im wscript.exe  
            查看遠程計算機進程:tasklist /s 192.168.1.160 /u administrator

            結束一個或多個任務或進程。可以根據進程 ID 或圖像名來結束進程。

            posted @ 2009-08-28 17:07 ggh 閱讀(814) | 評論 (0)編輯 收藏

            0   tasklist 列出進程列表。
            1   tskill   終止不帶后綴的進程,如:tskill notepad。
            2   taskkill 終止帶后綴的進程,如:taskkill  /im test1.exe。taskkill的具體參數說明如下:
            TASKKILL [/S system ]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]描述:這個命令行工具可用來結束至少一個進程。可以根據進程 id 或圖像名來結束進程。參數列表:/S system 指定要連接到的遠程系統。/U [domain\]user 指定應該在哪個用戶上下文執行這個命令。/P [password] 為提供的用戶上下文指定密碼。如果忽略,提示輸入。/F 指定要強行終止進程。/FI filter 指定篩選進或篩選出查詢的的任務。/PID process id 指定要終止的進程的PID。/IM image name 指定要終止的進程的圖像名。通配符 '*'可用來指定所有圖像名。/T Tree kill: 終止指定的進程和任何由此啟動的子進程。/? 顯示幫助/用法。篩選器:篩選器名 有效運算符 有效值----------- --------------- --------------STATUS eq, ne 運行 | 沒有響應IMAGENAME eq, ne 圖像名PID eq, ne, gt, lt, ge, le PID 值SESSION eq, ne, gt, lt, ge, le 會話編號CPUTIME eq, ne, gt, lt, ge, le CPU 時間,格式為hh:mm:ss。hh - 時,mm - 鐘,ss - 秒MEMUSAGE eq, ne, gt, lt, ge, le 內存使用,單位為 KBUSERNAME eq, ne 用戶名,格式為[domain\]userMODULES eq, ne DLL 名SERVICES eq, ne 服務名WINDOWTITLE eq, ne 窗口標題注意: 只有帶有篩選器的情況下,才能跟 /IM 切換使用通配符 '*'。注意: 遠程進程總是要強行終止,不管是否指定了 /F 選項。例如:TASKKILL /S system /F /IM notepad.exe /TTASKKILL /PID 1230 /PID 1241 /PID 1253 /TTASKKILL /F /IM notepad.exe /IM mspaint.exeTASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exeTASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"Hostname eq, ne 任何有效字符串。 狀態 eq, ne RUNNING|NOT RESPONDING magename eq, ne 任何有效字符串。 PID eg, ne, gt, lt, ge, le 任何有效的正整數。 Session eg, ne, gt, lt, ge, le 任何有效的會話數。 CPUTime eq, ne, gt, lt, ge, le hh:mm:ss 格式的有效時間。mm 參數和 ss 參數應在 0 到 59 之間,hh 參數可以是任何一個有效的無符號的數值。 Memusage eg, ne, gt, lt, ge, le 任何有效的整數。 其中eq為等于,ne為不等于

            posted @ 2009-08-28 17:01 ggh 閱讀(1021) | 評論 (0)編輯 收藏

            久久99热狠狠色精品一区| 久久99热这里只有精品66| 国产情侣久久久久aⅴ免费| 72种姿势欧美久久久久大黄蕉| 久久免费高清视频| 中文字幕无码久久精品青草| 无码久久精品国产亚洲Av影片 | 精品无码久久久久国产动漫3d| 中文字幕日本人妻久久久免费| 久久精品国产亚洲一区二区| 久久国产成人精品国产成人亚洲| 久久亚洲AV成人无码软件| 国产精品久久一区二区三区| 中文字幕久久亚洲一区| 久久综合九色综合精品| 久久AV无码精品人妻糸列| 国产成人精品久久| 久久精品国产亚洲AV香蕉| 日本精品久久久久影院日本| 国产产无码乱码精品久久鸭| 久久午夜无码鲁丝片秋霞| 久久国产高清一区二区三区| 久久99国产综合精品女同| 国产色综合久久无码有码| 合区精品久久久中文字幕一区| 一本大道加勒比久久综合| 精品久久一区二区三区| 久久99国产乱子伦精品免费| 伊人久久大香线蕉综合Av| 无码国内精品久久人妻麻豆按摩| 久久午夜电影网| 久久夜色精品国产亚洲| 国产99久久精品一区二区| 久久久无码精品亚洲日韩蜜臀浪潮| 久久精品国产乱子伦| 无码任你躁久久久久久老妇App| 午夜精品久久久久久影视777| 青青热久久国产久精品| 欧美精品丝袜久久久中文字幕| 久久精品国产清自在天天线| 日本国产精品久久|