|
2010年4月30日
2010年1月13日
http://zthread.sourceforge.net
2009年9月16日
2009年9月3日
makefile文件是win32匯編程序中不可少的一部分,類似于dos匯編下的bat文件
它一般需要包含以下內(nèi)容
1.注釋
2.宏定義
3.顯示規(guī)則
4.隱含規(guī)則
為了方便使用,一般都把描述文件的文件名取為默認(rèn)文件名:makefile。這個(gè)例子的makefile文件如下(注意前面括號(hào)里的是行號(hào),不是文件的真正內(nèi)容):
(001) # nmake工具的描述文件例子 (002) EXE = Test.exe #指定輸出文件 (003) OBJS = x.obj \ (004) y.obj #需要的目標(biāo)文件 (005) RES = x.res #需要的資源文件 (006) (007) LINK_FLAG = /subsystem:windows #鏈接選項(xiàng) (008) ML_FLAG = /c /coff #編譯選項(xiàng) (009) (010) #定義依賴關(guān)系和執(zhí)行命令 (011) $(EXE): $(OBJS) $(RES) (012) Link $(LINK_FLAG) /out:$(EXE) $(OBJS) $(RES) (013) $(OBJS): Common.inc (014) y.obj: y.inc (015) (016) #定義匯編編譯和資源編譯的默認(rèn)規(guī)則 (017) .asm.obj: (018) ml $(ML_FLAG) $< (019) .rc.res: (020) rc $< (021) (022) #清除臨時(shí)文件 (023) clean: (024) del *.obj (025) del *.res 1. 注釋和換行 makefile中的注釋是以#號(hào)開頭一直到行尾的字符,當(dāng)nmake工具處理到這些字符的時(shí)候,它會(huì)完全忽略#號(hào)及全部注釋字符。 當(dāng)一行的內(nèi)容過長的時(shí)候,可以用換行符來繼續(xù),makefile的換行符是\,如例子中的第三行和第四行可以合并為: OBJS = x.obj y.obj #需要的目標(biāo)文件 在使用換行符的時(shí)候要注意在“\”后面不能再加上其他字符,包括注釋和空格,否則nmake檢測到“\”不在一行的最后,就不會(huì)把它當(dāng)成換行符解釋,就會(huì)出現(xiàn)錯(cuò)誤。 2. 宏定義 makefile中允許使用簡單的宏定義指代源文件及其相關(guān)編譯信息,可以把宏稱為變量,在整個(gè)描述文件中,只要符合下面語法的行就是宏定義: 變量名=變量內(nèi)容 如上面例子文件中的2到8就是宏定義,在引用宏時(shí)只需在變量前加$符號(hào),但是要注意的是,如果變量名的長度超過一個(gè)字符,在引用時(shí)就必須加圓括號(hào)(),下面都是有效的宏引用: $(LINK_FLAG) $(EXE) $A $(A) 其中最后兩個(gè)引用是完全一致的。 宏定義的使用可以使makefile的使用更靈活:首先可以使文件便于修改,比如把第8行和第18行中ml的選項(xiàng)部分寫成宏定義,以后要改變編譯選項(xiàng)的時(shí)候,只要直接在makefile文件頭部改變宏定義就可以了,不必重新閱讀整個(gè)makefile文件;其次,當(dāng)不止一個(gè)地方用到同一個(gè)文件的時(shí)候,把文件名定義為宏定義可以減少錯(cuò)誤,增加可讀性,同時(shí)也可以便于修改;最大的好處是可以直接在命令行中用新的宏定義覆蓋,比如在命令行中鍵入: nmake ML_FLAG="/c /coff /Fl" 那么這時(shí)就會(huì)以新的/c /coff /Fl定義代替makefile中定義的/c /coff,在這種使用中要注意兩個(gè)問題,一是宏名稱要區(qū)分大小寫,ML_FLAG和ml_flag是不一樣的;二是定義值中有空格的時(shí)候要用雙引號(hào)引起來,沒有空格時(shí)可以不用雙引號(hào),如ML_FLAG=/c,這使臨時(shí)使用不同的參數(shù)編譯文件時(shí)可以不必修改makefile。 3. 顯式規(guī)則 makefile中包含有一些規(guī)則,這些規(guī)則定義了文件之間的依賴關(guān)系和產(chǎn)生命令,一個(gè)規(guī)則的格式是這樣的: 目標(biāo)文件:依賴文件;命令 (方法1) 或 目標(biāo)文件:依賴文件 (方法2) 命令 在規(guī)則定義和命令行中,不能包含注釋,例子中的第11和12行把宏定義展開后就是: test.exe:x.obj y.obj x.res Link /subsystem:windows /out:test.exe x.obj y.obj x.res 這里的目標(biāo)文件就是test.exe,它依賴于3個(gè)文件x.obj,y.obj和x.res,如果有必要,產(chǎn)生目標(biāo)文件的命令就是下面的Link命令,整個(gè)規(guī)則可以用兩種方法,用第二種方法的時(shí)候,命令可以從第二行開始,第一行的“;”省略,但是這時(shí)命令前面必須有一個(gè)Tab字符,否則nmake無法區(qū)分這究竟是命令還是別的定義。目標(biāo)文件可以有多個(gè),依賴文件也可以有多個(gè),同時(shí)命令也可以由多個(gè)命令行組成,當(dāng)然這時(shí)候就必須用第二種方法定義了。 我們也可以用test.exe生成的規(guī)則定義其他文件,如x.obj或x.res的生成方法,但nmake如何知道哪個(gè)是最終要make的文件呢?實(shí)際上nmake默認(rèn)將整個(gè)描述文件的第一條規(guī)則中的目標(biāo)文件認(rèn)為是最終文件,如果我們把11,12行放到第13行后面,那么x.obj和y.obj的建立規(guī)則就成了第一條規(guī)則,nmake建立了x.obj和x.obj之后就不理會(huì)test.exe的建立了,所以我們必須把最終需要生成的文件放在第一條規(guī)則定義。當(dāng)然,在nmake的命令行參數(shù)中可以指定要make的目標(biāo),如我們要生成x.res文件,那么不必修改makefile將x.res的描述規(guī)則移動(dòng)到最前面,而是直接在命令行鍵入以下命令即可: nmake x.res 參數(shù)中也可以同時(shí)帶好幾個(gè)目標(biāo)文件名,nmake會(huì)一一處理,如果指定的目標(biāo)文件沒有對應(yīng)的規(guī)則,nmake會(huì)返回一個(gè)出錯(cuò)信息: fatal error U1073: don't know how to make 'xxx文件' 當(dāng)用戶要求nmake去建造一個(gè)目標(biāo)時(shí),make會(huì)去找到這個(gè)目標(biāo)的依賴規(guī)則,這時(shí)第二行中的命令并不會(huì)立刻就執(zhí)行,而是首先要做一些事情:nmake先去檢查依賴文件是否是另一條規(guī)則的目標(biāo)文件,如果是則先處理這一條規(guī)則,否則不是,nmake再檢查各個(gè)依賴文件的時(shí)間,看這些文件有沒有比目標(biāo)文件更新的,如果沒有,nmake會(huì)決定不再重新建造目標(biāo)文件,并給出提示:'xxx文件' is up-to-date,如果依賴文件有比目標(biāo)文件更新的,才執(zhí)行命令。 所以一個(gè)順序下來,所有的目標(biāo)文件以及它們的依賴文件,以及依賴文件的依賴文件都會(huì)被檢查并更新,總而言之,一個(gè)目標(biāo)文件的建立包含了順序正確的指令鏈接,這個(gè)鏈接結(jié)構(gòu)是樹狀的,目標(biāo)文件是根,一級(jí)級(jí)擴(kuò)展到多個(gè)文件,我們要求的是nmake去建立鏈接中處于根部的那個(gè)文件,nmake會(huì)根據(jù)鏈接結(jié)構(gòu)從目標(biāo)開始向初始狀態(tài)前進(jìn),最后慢慢回來,在這個(gè)過程中執(zhí)行建立每個(gè)文件所必須的命令,一直到最終目標(biāo)建立完成。 目標(biāo)也可以沒有依賴文件,而且目標(biāo)也可以不是一個(gè)真正存在的文件,如例子第23行到第25行中的clean是一個(gè)目標(biāo),但我們并不是要生成一個(gè)clean文件,而是希望在文件調(diào)試完畢后用nmake來清除臨時(shí)文件,當(dāng)我們鍵入nmake clean的時(shí)候,工作目錄下并沒有clean這個(gè)文件,那么nmake就會(huì)去執(zhí)行clean定義中的命令,因?yàn)閚make把每一個(gè)不存在的目標(biāo)當(dāng)做是一個(gè)過時(shí)的目標(biāo),如此一來,就會(huì)刪除中間過程中的文件*.obj和*.res。 指出了目標(biāo)文件全名的規(guī)則稱為顯式規(guī)則,但有些類別的文件的編譯方法可以是雷同 的,如從asm文件產(chǎn)生obj文件的命令總是用ml,從rc文件產(chǎn)生res文件的命令總是用rc,對于每個(gè)文件都寫一條規(guī)則有些多余,這時(shí)候就要用到隱含規(guī)則。 4. 隱含規(guī)則 隱含規(guī)則可以為某一類的文件指出建立的命令,它具體定義了如何將帶一個(gè)特定擴(kuò)展名的文件轉(zhuǎn)換成具有另一種擴(kuò)展名的文件,定義的格式是: .源擴(kuò)展名.目標(biāo)擴(kuò)展名:;命令 (方法1) 或 .源擴(kuò)展名.目標(biāo)擴(kuò)展名: (方法2) 命令 隱含規(guī)則的語法和顯式規(guī)則相似,也是用“:”隔開,在“;”下面書寫命令,也可以不用“;”而將命令寫在第二行,同理,這時(shí)命令之前要加一個(gè)Tab字符。 隱含規(guī)則不能有依賴文件,所以“:”下面沒有內(nèi)容,例子中的第17、18行定義了從asm文件建立obj文件的隱含規(guī)則,第19和20行定義了從rc文件建立res文件的隱含規(guī)則,隱含規(guī)則中無法指定確定的輸入文件名,因?yàn)檩斎胛募欠褐傅挠邢嗤瑪U(kuò)展名的一整類文 件,這時(shí)候就要用到幾個(gè)特殊的內(nèi)定宏來指定文件名,這些宏是$@,$*,$?和$<,它們的含義如下: ● $@ —— 全路徑的目標(biāo)文件。 ● $* —— 除去擴(kuò)展名的全路徑的目標(biāo)文件。 ● $? —— 所有源文件名。 ● $< —— 源文件名(只能用在隱含規(guī)則中)。 所以第19、20行中的rc $< 用于x.rc的時(shí)候就是rc x.rc。 讀者可以注意到一些顯式規(guī)則沒有命令行,如第13行的“$(OBJS): Common.inc”指出了所有的obj文件全部依賴于Common.inc文件,第14行的“y.obj: y.inc”則指出了y.obj同時(shí)也依賴于y.inc和第13行的規(guī)則合并,y.obj依賴于Common.inc也依賴于y.inc,但是這兩條規(guī)則都沒有指出產(chǎn)生這些obj文件的命令,所以nmake處理的時(shí)候會(huì)到隱含規(guī)則中去找命令行,最后會(huì)用第18行的“ml $(ML_FLAG) $<”命令去產(chǎn)生這些obj文件。
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/hust_chen/archive/2008/04/25/2329368.aspx
轉(zhuǎn)================================ Makefile文件
Make工具最主要也是最基本的功能就是通過makefile文件來描述源程序之間的相互關(guān)系并自動(dòng)維護(hù)編譯工作。而makefile 文件需要按照某種語法進(jìn)行編寫,文件中需要說明如何編譯各個(gè)源文件并連接生成可執(zhí)行文件,并要求定義源文件之間的依賴關(guān)系。makefile 文件是許多編譯器--包括 Windows NT 下的編譯器--維護(hù)編譯信息的常用方法,只是在集成開發(fā)環(huán)境中,用戶通過友好的界面修改 makefile 文件而已。 在 UNIX 系統(tǒng)中,習(xí)慣使用 Makefile 作為 makefile 文件。如果要使用其他文件作為 makefile,則可利用類似下面的 make 命令選項(xiàng)指定 makefile 文件: $ make -f Makefile.debug 例如,一個(gè)名為prog的程序由三個(gè)C源文件filea.c、fileb.c和filec.c以及庫文件LS編譯生成,這三個(gè)文件還分別包含自己的頭文件a.h 、b.h和c.h。通常情況下,C編譯器將會(huì)輸出三個(gè)目標(biāo)文件filea.o、fileb.o和filec.o。假設(shè)filea.c和fileb.c都要聲明用到一個(gè)名為defs的文件,但filec.c不用。即在filea.c和fileb.c里都有這樣的聲明: #include "defs " 那么下面的文檔就描述了這些文件之間的相互聯(lián)系: --------------------------------------------------------- #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 ---------------------------------------------------------- 這個(gè)描述文檔就是一個(gè)簡單的makefile文件。 從上面的例子注意到,第一個(gè)字符為 # 的行為注釋行。第一個(gè)非注釋行指定prog由三個(gè)目標(biāo)文件filea.o、fileb.o和filec.o鏈接生成。第三行描述了如何從prog所依賴的文件建立可執(zhí)行文件。接下來的4、6、8行分別指定三個(gè)目標(biāo)文件,以及它們所依賴的.c和.h文件以及defs文件。而5、7、9行則指定了如何從目標(biāo)所依賴的文件建立目標(biāo)。 當(dāng)filea.c或a.h文件在編譯之后又被修改,則 make 工具可自動(dòng)重新編譯filea.o,如果在前后兩次編譯之間,filea.C 和a.h 均沒有被修改,而且 test.o 還存在的話,就沒有必要重新編譯。這種依賴關(guān)系在多源文件的程序編譯中尤其重要。通過這種依賴關(guān)系的定義,make 工具可避免許多不必要的編譯工作。當(dāng)然,利用 Shell 腳本也可以達(dá)到自動(dòng)編譯的效果,但是,Shell 腳本將全部編譯任何源文件,包括哪些不必要重新編譯的源文件,而 make 工具則可根據(jù)目標(biāo)上一次編譯的時(shí)間和目標(biāo)所依賴的源文件的更新時(shí)間而自動(dòng)判斷應(yīng)當(dāng)編譯哪個(gè)源文件。 Makefile文件作為一種描述文檔一般需要包含以下內(nèi)容: ◆ 宏定義 ◆ 源文件之間的相互依賴關(guān)系 ◆ 可執(zhí)行的命令 Makefile中允許使用簡單的宏指代源文件及其相關(guān)編譯信息,在Linux中也稱宏為變量。在引用宏時(shí)只需在變量前加$符號(hào),但值得注意的是,如果變量名的長度超過一個(gè)字符,在引用時(shí)就必須加圓括號(hào)()。 下面都是有效的宏引用: $(CFLAGS) $2 $Z $(Z) 其中最后兩個(gè)引用是完全一致的。 需要注意的是一些宏的預(yù)定義變量,在Unix系統(tǒng)中,$*、$@、$?和$ <四個(gè)特殊宏的值在執(zhí)行命令的過程中會(huì)發(fā)生相應(yīng)的變化,而在GNU make中則定義了更多的預(yù)定義變量。關(guān)于預(yù)定義變量的詳細(xì)內(nèi)容, 宏定義的使用可以使我們脫離那些冗長乏味的編譯選項(xiàng),為編寫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 …… --------------------------------------------------------- 此時(shí)如果執(zhí)行不帶參數(shù)的make命令,將連接三個(gè)目標(biāo)文件和庫文件LS;但是如果在make命令后帶有新的宏定義: make "LIBES= -LL -LS " 則命令行后面的宏定義將覆蓋makefile文件中的宏定義。若LL也是庫文件,此時(shí)make命令將連接三個(gè)目標(biāo)文件以及兩個(gè)庫文件LS和LL。 在Unix系統(tǒng)中沒有對常量NULL作出明確的定義,因此我們要定義NULL字符串時(shí)要使用下述宏定義: STRINGNAME=
2009年9月2日
優(yōu)化
選項(xiàng) 作用 /O1 創(chuàng)建小代碼 /O2 創(chuàng)建快速代碼 /Oa 假設(shè)沒有別名 /Ob 控制內(nèi)聯(lián)展開 /Od 禁用優(yōu)化 /Og 使用全局優(yōu)化 /Oi 生成內(nèi)部函數(shù) /Op 改善浮點(diǎn)數(shù)一致性 /Os 代碼大小優(yōu)先 /Ot 代碼速度優(yōu)先 /Ow 假定在函數(shù)調(diào)用中使用別名 /Ox 使用最大優(yōu)化 (/Ob1gity /Gs) /Oy 省略框架指針
代碼生成
選項(xiàng) 作用 /clr 啟用 C++ 的托管擴(kuò)展并產(chǎn)生在公共語言運(yùn)行庫上運(yùn)行的輸出文件 /EH 指定異常處理模型 /G3 優(yōu)化代碼以優(yōu)選 386 處理器。在 Visual C++ 5.0 中已經(jīng)停用,編譯器將忽略此選項(xiàng) /G4 優(yōu)化代碼以優(yōu)選 486 處理器。在 Visual C++ 5.0 中已經(jīng)停用,編譯器將忽略此選項(xiàng) /G5 優(yōu)化代碼以優(yōu)選 Pentium /GB 與 /G6 等效;將 _M_IX86 的值設(shè)置為 600 /Gd 使用 __cdecl 調(diào)用約定 /Ge 激活堆棧探測 /GF /GF 啟用字符串池 /GH 調(diào)用掛鉤函數(shù) _penter /GH 調(diào)用掛鉤函數(shù) _pexit /GL 啟用全程序優(yōu)化 /Gm 啟用最小重新生成 /Gr 啟用運(yùn)行時(shí)類型信息 (RTTI) /Gr 使用 __fastcall 調(diào)用約定 /GS 控制堆棧探測 /GT 支持使用靜態(tài)線程本地存儲(chǔ)區(qū)分配的數(shù)據(jù)的纖程安全 /GX 啟用同步異常處理 /Gy 啟用函數(shù)級(jí)鏈接 /GZ 使用 __stdcall 調(diào)用約定 /MD 使用 MSVCRT.lib 創(chuàng)建多線程 DLL /MDd 使用 MSVCRTD.lib 創(chuàng)建調(diào)試多線程 DLL /ML 使用 LIBC.lib 創(chuàng)建單線程可執(zhí)行文件 /MLd 使用 LIBCD.lib 創(chuàng)建調(diào)試單線程可執(zhí)行文件 /MT 使用 LIBCMT.lib 創(chuàng)建多線程可執(zhí)行文件 /MTd 使用 LIBCMTD.lib 創(chuàng)建調(diào)試多線程可執(zhí)行文件
輸出文件
選項(xiàng) 作用 /FA /FA 創(chuàng)建列表文件 設(shè)置列表文件名 /Fd 重命名程序數(shù)據(jù)庫文件 /Fe 重命名可執(zhí)行文件 /Fm 創(chuàng)建映射文件 /Fo 創(chuàng)建對象文件 /Fp 指定預(yù)編譯頭文件名 /FR /FR 生成瀏覽器文件 /Fx 將插入的代碼與源文件合并
調(diào)試
選項(xiàng) 作用 /GS 緩沖區(qū)安全檢查 /GZ 與 /RTC1 相同 /RTC 啟用運(yùn)行時(shí)錯(cuò)誤檢查 /Wp64 檢測 64 位可移植性問題 /Yd 將完整的調(diào)試信息放在所有對象文件中 /Yl 創(chuàng)建調(diào)試庫時(shí)插入 PCH 引用 /Z7 生成與 C 7.0 兼容的調(diào)試信息 /Zd 生成行號(hào) /Zi 生成完整的調(diào)試信息
預(yù)處理器
選項(xiàng) 作用 /AI 指定在解析傳遞到#using 指令的文件引用時(shí)搜索的目錄 /c 在預(yù)處理期間保留注釋 /D 定義常數(shù)和宏 /E 將預(yù)處理器輸出復(fù)制到標(biāo)準(zhǔn)輸出 /EP 將預(yù)處理器輸出復(fù)制到標(biāo)準(zhǔn)輸出 /Fl 預(yù)處理指定的包含文件 /FU 強(qiáng)制使用文件名,就像它已被傳遞到#using 指令一樣 /I 在目錄中搜索包含文件 /P 將預(yù)處理器輸出寫入文件 /U 移除預(yù)定義宏 /U 移除所有的預(yù)定義宏 /X 忽略標(biāo)準(zhǔn)包含目錄 /ZI 將調(diào)試信息包含在與“編輯并繼續(xù)”兼容的程序數(shù)據(jù)庫中
(附“編輯并繼續(xù)”:編輯并繼續(xù)”處理大多數(shù)類型的代碼更改。但是,在程序執(zhí)行期間,某些更改無法應(yīng)用。若要應(yīng)用這些更改,必須暫停執(zhí)行并生成新版本的代碼。
在調(diào)試會(huì)話期間不能應(yīng)用下列 C/C++ 更改: 大多數(shù)的全局或靜態(tài)數(shù)據(jù)的更改。 從其他計(jì)算機(jī)復(fù)制并且未在本地生成的可執(zhí)行文件的更改。 影響一個(gè)對象(如類的數(shù)據(jù)成員)布局的數(shù)據(jù)類型的更改。 添加超過 64k 字節(jié)的新代碼或數(shù)據(jù)。 添加要求在指令指針前存在構(gòu)造函數(shù)的變量。 影響需要運(yùn)行時(shí)初始化的代碼的更改。 在某些實(shí)例中,添加異常處理程序。 資源文件的更改。 只讀文件中的代碼更改。 沒有相應(yīng) PDB 文件的代碼的更改。 沒有對象文件的代碼的更改。
在以下調(diào)試方案中,“編輯并繼續(xù)”不可用: 在 Windows 98 上調(diào)試。 混合模式(本機(jī)/托管)調(diào)試。 SQL 調(diào)試。 調(diào)試 Dr. Watson 轉(zhuǎn)儲(chǔ)。 在未選擇“在未處理的異常上展開調(diào)用堆棧”選項(xiàng)的情況下,在發(fā)生未處理的異常之后編輯代碼。 調(diào)試嵌入式運(yùn)行庫應(yīng)用程序。 從“調(diào)試”菜單中使用“附加到”調(diào)試應(yīng)用程序,而不是使用“啟動(dòng)”運(yùn)行應(yīng)用程序。 調(diào)試優(yōu)化后的代碼。 當(dāng)目標(biāo)為 64 位應(yīng)用程序時(shí),調(diào)試托管代碼。如果想要使用“編輯并繼續(xù)”,必須將目標(biāo)平臺(tái)設(shè)置為 x86。((“Project 屬性”對話框->“編譯”選項(xiàng)卡->“高級(jí)編譯器”設(shè)置。) 如果由于生成錯(cuò)誤無法生成新版本的代碼,則對舊版本的代碼進(jìn)行調(diào)試)
語言
選項(xiàng) 作用 /noBool 取消 C++ bool、true 和 false 關(guān)鍵字 /vd 取消或啟用隱藏的 vtordisp 類成員 /vmb 對指向成員的指針使用最佳的基 /vmg 對指向成員的指針使用完全一般性 /vmm 聲明多重繼承 /vms 聲明單一繼承 /vmv 聲明虛擬繼承 /Za 禁用語言擴(kuò)展 /Zc 在 /Ze 下指定標(biāo)準(zhǔn)行為 /Ze 啟用語言擴(kuò)展 /Zg 生成函數(shù)原型 /Zl 從 .obj 文件中移除默認(rèn)庫名 /Zp n 封裝結(jié)構(gòu)成員 /Zs 只檢查語法
鏈接
選項(xiàng) 作用 /F 設(shè)置堆棧大小 /LD 創(chuàng)建動(dòng)態(tài)鏈接庫 /LDd 創(chuàng)建調(diào)試動(dòng)態(tài)鏈接庫 /link 將指定的選項(xiàng)傳遞給 LINK /MD 使用 MSVCRT.lib 編譯以創(chuàng)建多線程 DLL /MDd 使用 MSVCRTD.lib 編譯以創(chuàng)建調(diào)試多線程 DLL /ML 使用 LIBC.lib 編譯以創(chuàng)建單線程可執(zhí)行文件 /MLd 使用 LIBCD.lib 編譯以創(chuàng)建調(diào)試單線程可執(zhí)行文件 /MT 使用 LIBCMT.lib 編譯以創(chuàng)建多線程可執(zhí)行文件 /MTd 使用 LIBCMTD.lib 編譯以創(chuàng)建調(diào)試多線程可執(zhí)行文件
預(yù)編譯頭
選項(xiàng) 作用 /Y- 忽略當(dāng)前生成中的所有其他預(yù)編譯頭編譯器選項(xiàng) /Yc 創(chuàng)建預(yù)編譯頭文件 /Yd 將完整的調(diào)試信息放在所有對象文件中 /Yu 在生成期間使用預(yù)編譯頭文件 /YX 自動(dòng)處理預(yù)編譯頭
雜項(xiàng)
選項(xiàng) 作用 @ 指定響應(yīng)文件 /? 列出編譯器選項(xiàng) /c 編譯但不鏈接 /H 限制外部(公共)名稱的長度 /HELP 列出編譯器選項(xiàng) /J 更改默認(rèn)的 char 類型 /NOLOGO 取消顯示登錄版權(quán)標(biāo)志 /QI0f 確保 Pentium 0F 指令沒有問題 /QIfdiv FDIV、FPREM、FPTAN 和 FPATAN 指令有缺陷的 Intel Pentium 微處理器的變通方法 QIfist 當(dāng)需要從浮點(diǎn)類型轉(zhuǎn)換為整型時(shí)取消 Helper 函數(shù) _ftol 的調(diào)用 /showIncludes 在編譯期間顯示所有包含文件的列表 /Tc /Tc 指定 C 源文件 /Tp /Tp 指定 C++ 源文件 /V 設(shè)置版本字符串 /w 設(shè)置警告等級(jí) /w 禁用所有警告 /Wall 啟用所有警告,包括默認(rèn)情況下禁用的警告 /WL 在從命令行編譯 C++ 源代碼時(shí)啟用錯(cuò)誤信息和警告消息的單行診斷 /Zm 設(shè)置編譯器的內(nèi)存分配限制
CL 命令行使用下列語法:
CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]
下表說明CL 命令的輸入項(xiàng)意義
option 一個(gè)或多個(gè) CL 選項(xiàng)。請注意,所有選項(xiàng)都應(yīng)用于所有指定的源文件。選項(xiàng)是由一個(gè)正斜杠 (/) 或一個(gè)短劃線 (–) 指定的。如果某個(gè)選項(xiàng)帶有參數(shù),則該選項(xiàng)的說明指定在選項(xiàng)和參數(shù)之間是否允許有空格。選項(xiàng)名(/HELP 選項(xiàng)除外)區(qū)分大小寫。有關(guān)更多信息,請參閱 CL 選項(xiàng)的順序。
file 一個(gè)或多個(gè)源文件、.obj 文件或庫的名稱。CL 編譯源文件并將 .obj 文件和庫的名稱傳遞給鏈接器。有關(guān)更多信息,請參閱 CL 文件名語法。
lib 一個(gè)或多個(gè)庫名。CL 將這些名稱傳遞給鏈接器。
command-file 包含多個(gè)選項(xiàng)和文件名的文件。有關(guān)更多信息,請參閱 CL 命令文件。
link-opt 一個(gè)或多個(gè)鏈接器選項(xiàng)。CL 將這些選項(xiàng)傳遞給鏈接器。
您可以指定任意數(shù)目的選項(xiàng)、文件名和庫名,條件是命令行上的字符數(shù)不超過 1024,該限制是操作系統(tǒng)指定的。
CL 命令文件請參見 設(shè)置編譯器選項(xiàng) | 編譯器選項(xiàng) 命令文件是一個(gè)文本文件,它包含您另外在命令行上鍵入或使用 CL 環(huán)境變量指定的選項(xiàng)和文件名。CL 接受在 CL 環(huán)境變量中或命令行上用作參數(shù)的編譯器命令文件。與命令行或 CL 環(huán)境變量不同,命令文件允許使用多行選項(xiàng)和文件名。
命令文件中的選項(xiàng)和文件名將根據(jù) CL 環(huán)境變量中或命令行上的命令文件名的位置被進(jìn)行處理。但是,如果 /link 選項(xiàng)出現(xiàn)在命令文件中,則該行其余部分的所有選項(xiàng)將被傳遞給鏈接器。命令文件的后面幾行中的選項(xiàng)和命令行上命令文件調(diào)用之后的選項(xiàng)仍被作為編譯器選項(xiàng)接受。
命令文件一定不能包含 CL 命令。每個(gè)選項(xiàng)必須在同一行上開始和結(jié)束;不能使用反斜杠 (\) 跨行組合一個(gè)選項(xiàng)。
命令文件用一個(gè) @ 符后接一個(gè)文件名指定;該文件名可指定絕對路徑或相對路徑。
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/mickey139/archive/2009/06/01/4232489.aspx
后綴是bat的文件就是批處理文件,是一種文本文件。簡單的說,它的作用就是自動(dòng)的連續(xù)執(zhí)行多條命令,批處理文件的內(nèi)容就是一條一條的命令。那它有什么用呢?
比如,在啟動(dòng)wps軟件時(shí),每次都必須執(zhí)行
C:〉cd wps C:WPS〉spdos C:WPS〉py C:WPS〉wbx C:WPS〉wps
如果每次用WPS之前都這樣執(zhí)行一次,您是不是覺得很麻煩呢?
如果有一個(gè)方法,只需編寫一個(gè)批處理文件,就會(huì)自動(dòng)執(zhí)行剛才的所有命令,您想不想學(xué)呢?
當(dāng)您看完此節(jié),自己編寫的第一個(gè)批處理文件順利執(zhí)行時(shí),您一定會(huì)大吃一驚的。
此外電腦每次啟動(dòng)時(shí)都會(huì)尋找autoexec.bat這條批處理文件,從而可執(zhí)行一些每次開機(jī)都要執(zhí)行的命令,如設(shè)置路徑path、加載鼠標(biāo)驅(qū)動(dòng)mouse、磁盤加速smartdrv等,可以使您的電腦真正自動(dòng)化。
echo、@、call、pause、rem 是批處理文件最常用的幾個(gè)命令,我們就從他們開始學(xué)起。 echo 表示顯示此命令后的字符 echo off 表示在此語句后所有運(yùn)行的命令都不顯示命令行本身 @ 與echo off相象,但它是加在其它命令行的最前面,表示運(yùn)行時(shí)不顯示命令行本身。 call 調(diào)用另一條批處理文件(如果直接調(diào)用別的批處理文件 ,執(zhí)行完那條文件后將無法執(zhí)行當(dāng)前文件后續(xù)命令) pause 運(yùn)行此句會(huì)暫停,顯示Press any key to continue... 等待用戶按任意鍵后繼續(xù) rem 表示此命令后的字符為解釋行,不執(zhí)行,只是給自己今后查找用的
例:用edit編輯a.bat文件,輸入下列內(nèi)容后存盤為c:\a.bat,執(zhí)行該批處理文件后可實(shí)現(xiàn):將根目錄中所有文件寫入 a.txt中,啟動(dòng)UCDOS,進(jìn)入WPS等功能。
批處理文件的內(nèi)容為: 文件表示:
echo off 不顯示命令行
dir c:\*.* >a.txt 將c盤文件列表寫入a.txt
call c:\ucdos\ucdos.bat 調(diào)用ucdos
echo 你好 顯示“你好”
pause 暫停,等待按鍵繼續(xù)
rem 使用wps 注釋將使用wps
cd ucdos 進(jìn)入ucdos目錄
wps 使用wps
批處理文件中還可以像C語言一樣使用參數(shù),這只需用到一個(gè)參數(shù)表示符%。
%表示參數(shù),參數(shù)是指在運(yùn)行批處理文件時(shí)在文件名后加的字符串。變量可以從 %0到%9,%0表示文件名本身,字符串用%1到%9順序表示。
例如,C:根目錄下一批處理文件名為f.bat,內(nèi)容為 format %1
則如果執(zhí)行C:\>f a: 則實(shí)際執(zhí)行的是format a:
又如C:根目錄下一批處理文件的名為t.bat,內(nèi)容為 type %1 type %2
那么運(yùn)行C:\>t a.txt b.txt 將順序地顯示a.txt和b.txt文件的內(nèi)容
if goto choice for 是批處理文件中比較高級(jí)的命令,如果這幾個(gè)你用得很熟練,你就是批處理文件的專家啦。
if 表示將判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。 有三種格式: 1、if “參數(shù)” == “字符串” 待執(zhí)行的命令 參數(shù)如果等于指定的字符串,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。(注意是兩個(gè)等號(hào)) 如if “%1”== “a” format a:
2、if exist 文件名 待執(zhí)行的命令 如果有指定的文件,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。如if exist config.sys edit config.sys
3、if errorlevel 數(shù)字 待執(zhí)行的命令 如果返回碼等于指定的數(shù)字,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。如if errorlevel 2 goto x2 DOS程序運(yùn)行時(shí)都會(huì)返回一個(gè)數(shù)字給DOS,稱為錯(cuò)誤碼errorlevel或稱返回碼
goto 批處理文件運(yùn)行到這里將跳到goto 所指定的標(biāo)號(hào)處, 一般與if配合使用。 如:
goto end
:end echo this is the end
標(biāo)號(hào)用 :字符串 表示,標(biāo)號(hào)所在行不被執(zhí)行
choice 使用此命令可以讓用戶輸入一個(gè)字符,從而運(yùn)行不同的命令。使用時(shí)應(yīng)該加/c:參數(shù),c:后應(yīng)寫提示可輸入的字符,之間無空格。它的返回碼為1234……
如: choice /c:dme defrag,mem,end 將顯示 defrag,mem,end[D,M,E]?
例如,test.bat的內(nèi)容如下: @echo off choice /c:dme defrag,mem,end if errorlevel 3 goto defrag 應(yīng)先判斷數(shù)值最高的錯(cuò)誤碼 if errorlevel 2 goto mem if errotlevel 1 goto end
:defrag c:\dos\defrag goto end
:mem mem goto end
:end echo good bye
此文件運(yùn)行后,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e ,然后if語句將作出判斷,d表示執(zhí)行標(biāo)號(hào)為defrag的程序段,m表示執(zhí)行標(biāo)號(hào)為mem的程序段,e表示執(zhí)行標(biāo)號(hào)為end的程序段,每個(gè)程序段最后都以goto end將程序跳到end標(biāo)號(hào)處,然后程序?qū)@示good bye,文件結(jié)束。
for 循環(huán)命令,只要條件符合,它將多次執(zhí)行同一命令。
格式FOR [%%f] in (集合) DO [命令] 只要參數(shù)f在指定的集合內(nèi),則條件成立,執(zhí)行命令
如果一條批處理文件中有一行: for %%c in (*.bat *.txt) do type %%c 含義是如果是以bat或txt結(jié)尾的文件,則顯示文件的內(nèi)容。
autoexec.bat
DOS在啟動(dòng)會(huì)自動(dòng)運(yùn)行autoexec.bat這條文件,一般我們在里面裝載每次必用的程序,如: path(設(shè)置路徑)、smartdrv(磁盤加速)、 mouse(鼠標(biāo)啟動(dòng))、mscdex(光驅(qū)連接)、 doskey(鍵盤管理)、set(設(shè)置環(huán)境變量)等。
如果啟動(dòng)盤根目錄中沒有這個(gè)文件,電腦會(huì)讓用戶輸入日期和時(shí)間。
例如,一個(gè)典型的autoexec.bat內(nèi)容如下:
@echo off 不顯示命令行
prompt $p$g 設(shè)置提示符前有目錄提示
path c:\dos;c:\;c:\windows;c:\ucdos;c:\tools 設(shè)置路徑
lh c:\dos\doskey.com 加載鍵盤管理
lh c:\mouse\mouse.com 加載鼠標(biāo)管理
lh c:\dos\smartdrv.exe 加載磁盤加速管理
lh c:\dos\mscdex /S /D:MSCD000 /M:12 /V 加載CD-ROM驅(qū)動(dòng)
set temp=c:\temp 設(shè)置臨時(shí)目錄
2009年8月28日
系統(tǒng)正常狀態(tài)下的進(jìn)程和進(jìn)程解釋
正常windows XP SP2每一個(gè)進(jìn)程的含義---進(jìn)程列表
正常windows XP SP2每一個(gè)進(jìn)程的含義---進(jìn)程列表--->
進(jìn)程0:[System Process](優(yōu)先級(jí):暫缺)5a 進(jìn)程1:System(優(yōu)先級(jí):標(biāo)準(zhǔn))xf 進(jìn)程2:\SystemRoot\System32\smss.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))J'{ 進(jìn)程3:CSRSS.EXE(優(yōu)先級(jí):高)sE?b 進(jìn)程4:\??\D:\WINDOWS\system32\winlogon.exe(優(yōu)先級(jí):高)x,Y_7 進(jìn)程5:D:\WINDOWS\system32\services.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))7U9>p@ 進(jìn)程6:D:\WINDOWS\system32\lsass.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))Z?r_. 進(jìn)程7:D:\WINDOWS\system32\svchost.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))Nz 進(jìn)程8:SVCHOST.EXE(優(yōu)先級(jí):標(biāo)準(zhǔn))CZO 進(jìn)程9:D:\WINDOWS\System32\svchost.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))yGh> 進(jìn)程10:SVCHOST.EXE(優(yōu)先級(jí):標(biāo)準(zhǔn))o,&Y 進(jìn)程11:SVCHOST.EXE(優(yōu)先級(jí):標(biāo)準(zhǔn))A 進(jìn)程12:D:\WINDOWS\system32\spoolsv.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))T 進(jìn)程13:D:\WINDOWS\Explorer.EXE(優(yōu)先級(jí):標(biāo)準(zhǔn))i5d5 進(jìn)程14:D:\WINDOWS\system32\ctfmon.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))aeI 進(jìn)程15:D:\WINDOWS\system32\crypserv.exe(優(yōu)先級(jí):高)~^ 進(jìn)程16:D:\WINDOWS\System32\inetsrv\inetinfo.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))DF. 進(jìn)程17:WDFMGR.EXE(優(yōu)先級(jí):標(biāo)準(zhǔn))g3Qg@ 進(jìn)程18:ALG.EXE(優(yōu)先級(jí):標(biāo)準(zhǔn))f7Hfr 進(jìn)程19:D:\WINDOWS\System32\svchost.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))qM`!1_ 進(jìn)程20:wmiprvse.exe(優(yōu)先級(jí):標(biāo)準(zhǔn))
---進(jìn)程說明---j/hNx
進(jìn)程0:[System Process]<)yYb 公司:g\!H 描述:X 版權(quán):tq^3 文件版本:j 產(chǎn)品名稱:7m 產(chǎn)品版本:
進(jìn)程1:SystemBF1}~_ 公司:1Q 描述:ls 版權(quán):@ho=3r 文件版本:PFE 產(chǎn)品名稱:=+_\sF 產(chǎn)品版本
進(jìn)程2:\SystemRoot\System32\smss.exe2Jm 公司:(:n 描述:s"jo7' 版權(quán):Iek0b 文件版本:^Jr 產(chǎn)品名稱:gg6y2: 產(chǎn)品版本:
進(jìn)程3:CSRSS.EXE* 公司:Microsoft Corporation\:e 描述:Client Server Runtime ProcessEk\K+[ 版權(quán):? Microsoft Corporation. All rights reserved.r*t 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158))"A 產(chǎn)品名稱:Microsoft? Windows? Operating SystemuK 產(chǎn)品版本:5.1.2600.2180mX
.v[c 進(jìn)程4:\??\D:\WINDOWS\system32\winlogon.exefHnA 公司: nF^&L 描述:wmv3 版權(quán):@k 文件版本:-o` 產(chǎn)品名稱:EDm" 產(chǎn)品版本:
進(jìn)程5:D:\WINDOWS\system32\services.exe|>n6 公司:Microsoft Corporation_ 描述:Services and Controller app-o4nu| 版權(quán):(C) Microsoft Corporation. All rights reserved.xq( 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)y#\d` 產(chǎn)品名稱:Microsoft(R) Windows(R) Operating Systemj 產(chǎn)品版本:5.1.2600.2180K
進(jìn)程6:D:\WINDOWS\system32\lsass.exeI 公司:Microsoft Corporationt$wb 描述:LSA Shell (Export Version)\/Z 版權(quán):? Microsoft Corporation. All rights reserved.:9{=' 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)diO+s 產(chǎn)品名稱:Microsoft? Windows? Operating SystemK 產(chǎn)品版本:5.1.2600.2180\}
進(jìn)程7:D:\WINDOWS\system32\svchost.exe`S3?公司:Microsoft Corporation_ 描述:Generic Host Process for Win32 Services!j} 版權(quán):? Microsoft Corporation. All rights reserved.-}_" 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)U 產(chǎn)品名稱:Microsoft? Windows? Operating SystemN*uEO 產(chǎn)品版本:5.1.2600.2180P
進(jìn)程8:SVCHOST.EXEcP}J 公司:Microsoft CorporationJ7Y 描述:Generic Host Process for Win32 Servicesms$^ 版權(quán):? Microsoft Corporation. All rights reserved.n.+ 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158);*^eP 產(chǎn)品名稱:Microsoft? Windows? Operating System[ 產(chǎn)品版本:5.1.2600.2180\
進(jìn)程9:D:\WINDOWS\System32\svchost.exeuhO 公司:Microsoft Corporatione8 描述:Generic Host Process for Win32 ServicesQwQN 版權(quán):? Microsoft Corporation. All rights reserved.gim 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)w 產(chǎn)品名稱:Microsoft? Windows? Operating System=(1 產(chǎn)品版本:5.1.2600.2180N
進(jìn)程10:SVCHOST.EXEy#-f 公司:Microsoft CorporationhMy} 描述:Generic Host Process for Win32 Servicesl,M 版權(quán):? Microsoft Corporation. All rights reserved.%!-} 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)Jwg2 產(chǎn)品名稱:Microsoft? Windows? Operating SystemuER 產(chǎn)品版本:5.1.2600.2180\
進(jìn)程11:SVCHOST.EXE] 公司:Microsoft CorporationhC&>?1 描述:Generic Host Process for Win32 Services2e&ZnS 版權(quán):? Microsoft Corporation. All rights reserved.A"]ndF 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158):'j_`$ 產(chǎn)品名稱:Microsoft? Windows? Operating Systemb 產(chǎn)品版本:5.1.2600.2180j
進(jìn)程12:D:\WINDOWS\system32\spoolsv.exe,U`? 公司:Microsoft Corporation Rz 描述:Spooler SubSystem App5~+m~ 版權(quán):? Microsoft Corporation. All rights reserved.Rh_c 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)F 產(chǎn)品名稱:Microsoft? Windows? Operating System7Cx{pT 產(chǎn)品版本:5.1.2600.2180P
進(jìn)程13:D:\WINDOWS\Explorer.EXEH4vJ| 公司:Microsoft CorporationXkY 描述:Windows Explorer.YHP 版權(quán):(C) Microsoft Corporation. All rights reserved.$=ql!? 文件版本:6.00.2900.2180 (xpsp_sp2_rtm.040803-2158)>5})V 產(chǎn)品名稱:Microsoft(R) Windows(R) Operating Systemwg 產(chǎn)品版本:6.00.2900.2180l2^:
進(jìn)程14:D:\WINDOWS\system32\ctfmon.exeT9X 公司:Microsoft Corporationpv 描述:CTF Loader`jVUz! 版權(quán):? Microsoft Corporation. All rights reserved.H)SdL[ 文件版本:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)i)q% 產(chǎn)品名稱:Microsoft? Windows? Operating SystemR-F 產(chǎn)品版本:5.1.2600.2180>
進(jìn)程15:D:\WINDOWS\system32\crypserv.exesg( 公司:Kenonic Controls Ltd.F-[ 描述:CrypKey NT ServiceE^~&^Z 版權(quán):Copyright ? 2000h)Y 文件版本:5.4.0R\8z_1 產(chǎn)品名稱:CrypKey Software Licensing System50"H]7 產(chǎn)品版本:5.4"sq`
進(jìn)程16:D:\WINDOWS\System32\inetsrv\inetinfo.exeZxvi_? 公司:Microsoft Corporation<MF
最基本的系統(tǒng)進(jìn)程(也就是說,這些進(jìn)程是系統(tǒng)運(yùn)行的基本條件,有了這些進(jìn)程,系統(tǒng)就能正常運(yùn)行): smss.exe Session Manager csrss.exe 子系統(tǒng)服務(wù)器進(jìn)程 winlogon.exe 管理用戶登錄 services.exe 包含很多系統(tǒng)服務(wù) lsass.exe 管理 IP 安全策略以及啟動(dòng) ISAKMP/Oakley (IKE) 和 IP 安全驅(qū)動(dòng)程序。(系統(tǒng)服務(wù)) 產(chǎn)生會(huì)話密鑰以及授予用于交互式客戶/服務(wù)器驗(yàn)證的服務(wù)憑據(jù)(ticket)。(系統(tǒng)服務(wù)) svchost.exe 包含很多系統(tǒng)服務(wù) svchost.exe SPOOLSV.EXE 將文件加載到內(nèi)存中以便遲后打印。(系統(tǒng)服務(wù)) explorer.exe 資源管理器 internat.exe 托盤區(qū)的拼音圖標(biāo) 附加的系統(tǒng)進(jìn)程(這些進(jìn)程不是必要的,你可以根據(jù)需要通過服務(wù)管理器來增加或減少): mstask.exe 允許程序在指定時(shí)間運(yùn)行。(系統(tǒng)服務(wù)) regsvc.exe 允許遠(yuǎn)程注冊表操作。(系統(tǒng)服務(wù)) winmgmt.exe 提供系統(tǒng)管理信息(系統(tǒng)服務(wù))。 inetinfo.exe 通過 Internet 信息服務(wù)的管理單元提供 FTP 連接和管理。(系統(tǒng)服務(wù)) tlntsvr.exe 允許遠(yuǎn)程用戶登錄到系統(tǒng)并且使用命令行運(yùn)行控制臺(tái)程序。(系統(tǒng)服務(wù)) 允許通過 Internet 信息服務(wù)的管理單元管理 Web 和 FTP 服務(wù)。(系統(tǒng)服務(wù)) tftpd.exe 實(shí)現(xiàn) TFTP Internet 標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)不要求用戶名和密碼。遠(yuǎn)程安裝服務(wù)的一部分。(系統(tǒng)服務(wù)) termsrv.exe 提供多會(huì)話環(huán)境允許客戶端設(shè)備訪問虛擬的 Windows 2000 Professional 桌面會(huì)話以及運(yùn)行在服務(wù)器上的基于 Windows 的程序。(系統(tǒng)服務(wù)) dns.exe 應(yīng)答對域名系統(tǒng)(DNS)名稱的查詢和更新請求。(系統(tǒng)服務(wù)) 以下服務(wù)很少會(huì)用到,上面的服務(wù)都對安全有害,如果不是必要的應(yīng)該關(guān)掉tcpsvcs.exe 提供在 PXE 可遠(yuǎn)程啟動(dòng)客戶計(jì)算機(jī)上遠(yuǎn)程安裝 Windows 2000 Professional 的能力。(系統(tǒng)服務(wù)) 支持以下 TCP/IP 服務(wù):Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。(系統(tǒng)服務(wù)) ismserv.exe 允許在 Windows Advanced Server 站點(diǎn)間發(fā)送和接收消息。(系統(tǒng)服務(wù)) ups.exe 管理連接到計(jì)算機(jī)的不間斷電源(UPS)。(系統(tǒng)服務(wù)) wins.exe 為注冊和解析 NetBIOS 型名稱的 TCP/IP 客戶提供 NetBIOS 名稱服務(wù)。(系統(tǒng)服務(wù)) llssrv.exe License Logging Service(system service) ntfrs.exe 在多個(gè)服務(wù)器間維護(hù)文件目錄內(nèi)容的文件同步。(系統(tǒng)服務(wù)) RsSub.exe 控制用來遠(yuǎn)程儲(chǔ)存數(shù)據(jù)的媒體。(系統(tǒng)服務(wù)) locator.exe 管理 RPC 名稱服務(wù)數(shù)據(jù)庫。(系統(tǒng)服務(wù)) lserver.exe 注冊客戶端許可證。(系統(tǒng)服務(wù)) dfssvc.exe 管理分布于局域網(wǎng)或廣域網(wǎng)的邏輯卷。(系統(tǒng)服務(wù)) clipsrv.exe 支持“剪貼簿查看器”,以便可以從遠(yuǎn)程剪貼簿查閱剪貼頁面。(系統(tǒng)服務(wù)) msdtc.exe 并列事務(wù),是分布于兩個(gè)以上的數(shù)據(jù)庫,消息隊(duì)列,文件系統(tǒng),或其它事務(wù)保護(hù)資源管理器。(系統(tǒng)服務(wù)) faxsvc.exe 幫助您發(fā)送和接收傳真。(系統(tǒng)服務(wù)) cisvc.exe Indexing Service(system service) dmadmin.exe 磁盤管理請求的系統(tǒng)管理服務(wù)。(系統(tǒng)服務(wù)) mnmsrvc.exe 允許有權(quán)限的用戶使用 NetMeeting 遠(yuǎn)程訪問 Windows 桌面。(系統(tǒng)服務(wù)) netdde.exe 提供動(dòng)態(tài)數(shù)據(jù)交換 (DDE) 的網(wǎng)絡(luò)傳輸和安全特性。(系統(tǒng)服務(wù)) smlogsvc.exe 配置性能日志和警報(bào)。(系統(tǒng)服務(wù)) rsvp.exe 為依賴質(zhì)量服務(wù)(QoS)的程序和控制應(yīng)用程序提供網(wǎng)絡(luò)信號(hào)和本地通信控制安裝功能。(系統(tǒng)服務(wù)) RsEng.exe 協(xié)調(diào)用來儲(chǔ)存不常用數(shù)據(jù)的服務(wù)和管理工具。(系統(tǒng)服務(wù)) RsFsa.exe 管理遠(yuǎn)程儲(chǔ)存的文件的操作。(系統(tǒng)服務(wù)) grovel.exe 掃描零備份存儲(chǔ)(SIS)卷上的重復(fù)文件,并且將重復(fù)文件指向一個(gè)數(shù)據(jù)存儲(chǔ)點(diǎn),以節(jié)省磁盤空間。(系統(tǒng)服務(wù)) SCardSvr.exe 對插入在計(jì)算機(jī)智能卡閱讀器中的智能卡進(jìn)行管理和訪問控制。(系統(tǒng)服務(wù)) snmp.exe 包含代理程序可以監(jiān)視網(wǎng)絡(luò)設(shè)備的活動(dòng)并且向網(wǎng)絡(luò)控制臺(tái)工作站匯報(bào)。(系統(tǒng)服務(wù)) snmptrap.exe 接收由本地或遠(yuǎn)程 SNMP 代理程序產(chǎn)生的陷阱消息,然后將消息傳遞到運(yùn)行在這臺(tái)計(jì)算機(jī)上 SNMP 管理程序。(系統(tǒng)服務(wù)) UtilMan.exe 從一個(gè)窗口中啟動(dòng)和配置輔助工具。(系統(tǒng)服務(wù)) msiexec.exe 依據(jù) .MSI 文件中包含的命令來安裝、修復(fù)以及刪除軟件。(系統(tǒng)服務(wù))
詳細(xì)說明:
win2k運(yùn)行進(jìn)程 Svchost.exe Svchost.exe文件對那些從動(dòng)態(tài)連接庫中運(yùn)行的服務(wù)來說是一個(gè)普通的主機(jī)進(jìn)程名。Svhost.exe文件定位在系統(tǒng)的%systemroot%\system32文件夾下。在啟動(dòng)的時(shí)候,Svchost.exe檢查注冊表中的位置來構(gòu)建需要加載的服務(wù)列表。這就會(huì)使多個(gè)Svchost.exe在同一時(shí)間運(yùn)行。每個(gè)Svchost.exe的回話期間都包含一組服務(wù), 以至于單獨(dú)的服務(wù)必須依靠Svchost.exe怎樣和在那里啟動(dòng)。這樣就更加容易控制和查找錯(cuò)誤。 Svchost.exe 組是用下面的注冊表值來識(shí)別。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost 每個(gè)在這個(gè)鍵下的值代表一個(gè)獨(dú)立的Svchost組,并且當(dāng)你正在看活動(dòng)的進(jìn)程時(shí),它顯示作為一個(gè)單獨(dú)的例子。每個(gè)鍵值都是REG_MULTI_SZ類型的值而且包括運(yùn)行在Svchost組內(nèi)的服務(wù)。每個(gè)Svchost組都包含一個(gè)或多個(gè)從注冊表值中選取的服務(wù)名,這個(gè)服務(wù)的參數(shù)值包含了一個(gè)ServiceDLL值。 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service 更多的信息 為了能看到正在運(yùn)行在Svchost列表中的服務(wù)。 開始-運(yùn)行-敲入cmd 然后在敲入 tlist -s (tlist 應(yīng)該是win2k工具箱里的冬冬) Tlist 顯示一個(gè)活動(dòng)進(jìn)程的列表。開關(guān) -s 顯示在每個(gè)進(jìn)程中的活動(dòng)服務(wù)列表。如果想知道更多的關(guān)于進(jìn)程的信息,可以敲 tlist pid。
Tlist 顯示Svchost.exe運(yùn)行的兩個(gè)例子。 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 在這個(gè)例子中注冊表設(shè)置了兩個(gè)組。 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
這個(gè)是用戶模式Win32子系統(tǒng)的一部分。csrss代表客戶/服務(wù)器運(yùn)行子系統(tǒng)而且是一個(gè)基本的子系統(tǒng)必須一直運(yùn)行。csrss 負(fù)責(zé)控制windows,創(chuàng)建或者刪除線程和一些16位的虛擬MS-DOS環(huán)境。
explorer.exe 這是一個(gè)用戶的shell(我實(shí)在是不知道怎么翻譯shell),在我們看起來就像任務(wù)條,桌面等等。這個(gè)進(jìn)程并不是像你想象的那樣是作為一個(gè)重要的進(jìn)程運(yùn)行在windows中,你可以從任務(wù)管理器中停掉它,或者重新啟動(dòng)。 通常不會(huì)對系統(tǒng)產(chǎn)生什么負(fù)面影響。
internat.exe
這個(gè)進(jìn)程是可以從任務(wù)管理器中關(guān)掉的。 internat.exe在啟動(dòng)的時(shí)候開始運(yùn)行。它加載由用戶指定的不同的輸入點(diǎn)。輸入點(diǎn)是從注冊表的
這個(gè)位置 HKEY_USERS\.DEFAULT\Keyboard Layout\Preload 加載內(nèi)容的。 internat.exe 加載“EN”圖標(biāo)進(jìn)入系統(tǒng)的圖標(biāo)區(qū),允許使用者可以很容易的轉(zhuǎn)換不同的輸入點(diǎn)。 當(dāng)進(jìn)程停掉的時(shí)候,圖標(biāo)就會(huì)消失,但是輸入點(diǎn)仍然可以通過控制面板來改變。
lsass.exe 這個(gè)進(jìn)程是不可以從任務(wù)管理器中關(guān)掉的。 這是一個(gè)本地的安全授權(quán)服務(wù),并且它會(huì)為使用winlogon服務(wù)的授權(quán)用戶生成一個(gè)進(jìn)程。這個(gè)進(jìn)程是 通過使用授權(quán)的包,例如默認(rèn)的msgina.dll來執(zhí)行的。如果授權(quán)是成功的,lsass就會(huì)產(chǎn)生用戶的進(jìn)入 令牌,令牌別使用啟動(dòng)初始的shell。其他的由用戶初始化的進(jìn)程會(huì)繼承這個(gè)令牌的。
mstask.exe 這個(gè)進(jìn)程是不可以從任務(wù)管理器中關(guān)掉的。 這是一個(gè)任務(wù)調(diào)度服務(wù),負(fù)責(zé)用戶事先決定在某一時(shí)間運(yùn)行的任務(wù)的運(yùn)行。
smss.exe 這個(gè)進(jìn)程是不可以從任務(wù)管理器中關(guān)掉的。 這是一個(gè)會(huì)話管理子系統(tǒng),負(fù)責(zé)啟動(dòng)用戶會(huì)話。這個(gè)進(jìn)程是通過系統(tǒng)進(jìn)程初始化的并且對許多活
動(dòng)的, 包括已經(jīng)正在運(yùn)行的Winlogon,Win32(Csrss.exe)線程和設(shè)定的系統(tǒng)變量作出反映。在它啟動(dòng)
這些 進(jìn)程后,它等待Winlogon或者Csrss結(jié)束。如果這些過程時(shí)正常的,系統(tǒng)就關(guān)掉了。如果發(fā)生了什
么 不可預(yù)料的事情,smss.exe就會(huì)讓系統(tǒng)停止響應(yīng)(就是掛起)。
spoolsv.exe 這個(gè)進(jìn)程是不可以從任務(wù)管理器中關(guān)掉的。 緩沖(spooler)服務(wù)是管理緩沖池中的打印和傳真作業(yè)。
service.exe 這個(gè)進(jìn)程是不可以從任務(wù)管理器中關(guān)掉的。 大多數(shù)的系統(tǒng)核心模式進(jìn)程是作為系統(tǒng)進(jìn)程在運(yùn)行。
System Idle Process 這個(gè)進(jìn)程是不可以從任務(wù)管理器中關(guān)掉的。 這個(gè)進(jìn)程是作為單線程運(yùn)行在每個(gè)處理器上,并在系統(tǒng)不處理其他線程的時(shí)候分派處理器的時(shí)間
。
taskmagr.exe 這個(gè)進(jìn)程是可以在任務(wù)管理器中關(guān)掉的。 這個(gè)進(jìn)程就是任務(wù)管理器。
winlogon.exe 這個(gè)進(jìn)程是管理用戶登錄和推出的。而且winlogon在用戶按下CTRL+ALT+DEL時(shí)就激活了,顯示安
全對話框。
winmgmt.exe winmgmt是win2000客戶端管理的核心組件。當(dāng)客戶端應(yīng)用程序連接或當(dāng)管理程序需要他本身的服務(wù)時(shí)這個(gè)進(jìn)程初始化
taskkill說明
用于結(jié)束進(jìn)程的DOS命令
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]
描述: 這個(gè)命令行工具可用來結(jié)束至少一個(gè)進(jìn)程。 可以根據(jù)進(jìn)程 id 或圖像名來結(jié)束進(jìn)程。
參數(shù)列表: /Ssystem 指定要連接到的遠(yuǎn)程系統(tǒng)。
/U[domain\]user指定應(yīng)該在哪個(gè)用戶上下文 執(zhí)行這個(gè)命令。
/P[password] 為提供的用戶上下文指定 密碼。如果忽略,提示輸入。
/F 指定要強(qiáng)行終止 進(jìn)程。
/FI filter 指定篩選進(jìn)或篩選出查詢的 的任務(wù)。
/PIDprocess id 指定要終止的進(jìn)程的 PID。
/IM image name 指定要終止的進(jìn)程的 圖像名。通配符 '*' 可用來指定所有圖像名。
/T Tree kill: 終止指定的進(jìn)程 和任何由此啟動(dòng)的子進(jìn)程。
/? 顯示幫助/用法。
篩選器: 篩選器名有效運(yùn)算符有效值 ----------- --------------- -------------- STATUSeq, ne運(yùn)行 | 沒有響應(yīng) IMAGENAME eq, ne圖像名 PID eq, ne, gt, lt, ge, lePID 值 SESSION eq, ne, gt, lt, ge, le會(huì)話編號(hào) CPUTIME eq, ne, gt, lt, ge, leCPU 時(shí)間,格式為 hh:mm:ss。 hh - 時(shí), mm - 鐘,ss - 秒 MEMUSAGEeq, ne, gt, lt, ge, le內(nèi)存使用,單位為 KB USERNAMEeq, ne用戶名,格式為 [domain\]user MODULES eq, neDLL 名 SERVICESeq, ne服務(wù)名 WINDOWTITLE eq, ne窗口標(biāo)題
注意: 只有帶有篩選器的情況下,才能跟 /IM 切換使用通配符 '*'。
注意: 遠(yuǎn)程進(jìn)程總是要強(qiáng)行終止, 不管是否指定了 /F 選項(xiàng)。
例如: 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]
參數(shù) /s Computer 指定遠(yuǎn)程計(jì)算機(jī)名稱或 IP 地址(不能使用反斜杠)。默認(rèn)值是本地計(jì)算機(jī)。 /u Domain\User 運(yùn)行具有由 User 或 Domain\User 指定用戶的帳戶權(quán)限命令。默認(rèn)值是當(dāng)前登錄發(fā)布命令的計(jì)算機(jī)的用戶權(quán)限。 /p Password 指定用戶帳戶的密碼,該用戶帳戶在 /u 參數(shù)中指定。 /fi FilterName 指定將要終止或不終止的過程的類型。以下是有效的篩選器名稱、運(yùn)算符和值: 名稱 運(yùn)算符 值 Hostname eq, ne 任何有效字符串。 狀態(tài) eq, ne RUNNING|NOT RESPONDING Imagename eq, ne 任何有效字符串。 PID eg, ne, gt, lt, ge, le 任何有效的正整數(shù)。 Session eg, ne, gt, lt, ge, le 任何有效的會(huì)話數(shù)。 CPUTime eq, ne, gt, lt, ge, le hh:mm:ss 格式的有效時(shí)間。mm 參數(shù)和 ss 參數(shù)應(yīng)在 0 到 59 之間,hh 參數(shù)可以是任何一個(gè)有效的無符號(hào)的數(shù)值。 Memusage eg, ne, gt, lt, ge, le 任何有效的整數(shù)。 用戶名 eq, ne 任何有效的用戶名 ([Domain\]User)。 服務(wù) eq, ne 任何有效字符串。 Windowtitle eq, ne 任何有效字符串。
/pid ProcessID 指定將終止的過程的過程 ID。 /im ImageName 指定將終止的過程的圖像名稱。使用通配符 (*) 指定所有圖像名稱。 /f 指定將強(qiáng)制終止的過程。對于遠(yuǎn)程過程可忽略此參數(shù),所有遠(yuǎn)程過程都將被強(qiáng)制終止。 /t 指定終止與父進(jìn)程一起的所有子進(jìn)程,常被認(rèn)為是“樹終止”。 /? 在命令提示符顯示幫助。 注釋 只有與篩選器一起指定時(shí),通配符 (*) 才能被接受。 無論是否指定 /f 參數(shù),都會(huì)始終強(qiáng)制執(zhí)行對遠(yuǎn)程過程的終止操作。 向 HOSTNAME 篩選器提供計(jì)算機(jī)名將導(dǎo)致關(guān)機(jī)和中止所有過程。 使用 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命令用來顯示運(yùn)行在本地或遠(yuǎn)程計(jì)算機(jī)上的所有進(jìn)程,帶有多個(gè)執(zhí)行參數(shù)。
使用格式 Tasklist [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
參數(shù)含義 /S system 指定連接到的遠(yuǎn)程系統(tǒng)。
/U [domain\]user 指定使用哪個(gè)用戶執(zhí)行這個(gè)命令。
/P [password] 為指定的用戶指定密碼。
/M [module] 列出調(diào)用指定的DLL模塊的所有進(jìn)程。如果沒有指定模塊名,顯示每個(gè)進(jìn)程加載的所有模塊。
/SVC 顯示每個(gè)進(jìn)程中的服務(wù)。
/V 顯示詳細(xì)信息。
/FI filter 顯示一系列符合篩選器指定的進(jìn)程。
/FO format 指定輸出格式,有效值:TABLE、LIST、CSV。
/NH 指定輸出中不顯示欄目標(biāo)題。只對TABLE和CSV格式有效。
應(yīng)用實(shí)例。 1.查看本機(jī)進(jìn)程 在“命令提示符”中輸入Tasklist命令即可顯示本機(jī)的所有進(jìn)程(圖1)。本機(jī)的顯示結(jié)果由5部分組成:圖像名(進(jìn)程名)、PID、會(huì)話名、會(huì)話#和內(nèi)存使用。
2.查看遠(yuǎn)程系統(tǒng)的進(jìn)程 在命令提示符下輸入“Tasklist /s 218.22.123.26 /u jtdd /p 12345678”(不包括引號(hào))即可查看到IP地址為218.22.123.26的遠(yuǎn)程系統(tǒng)的進(jìn)程(圖2)。其中/s參數(shù)后的“218.22.123.26”指要查看的遠(yuǎn)程系統(tǒng)的IP地址,/u后的“jtdd”指Tasklist命令使用的用戶賬號(hào),它必須是遠(yuǎn)程系統(tǒng)上的一個(gè)合法賬號(hào),/p后的“12345678”指jtdd賬號(hào)的密碼。 注意:使用Tasklist命令查看遠(yuǎn)程系統(tǒng)的進(jìn)程時(shí),需要遠(yuǎn)程機(jī)器的RPC服務(wù)的支持,否則,該命令不能正常使用。
3.查看系統(tǒng)進(jìn)程提供的服務(wù) Tasklist命令不但可以查看系統(tǒng)進(jìn)程,而且還可以查看每個(gè)進(jìn)程提供的服務(wù)。如查看本機(jī)進(jìn)程SVCHOST.EXE提供的服務(wù),在命令提示符下輸入“Tasklist /svc”命令即可(圖3)。你會(huì)驚奇地發(fā)現(xiàn),有4個(gè)SVCHOST.EXE進(jìn)程,而總共有二十幾項(xiàng)服務(wù)使用這個(gè)進(jìn)程。 對于遠(yuǎn)程系統(tǒng)來說,查看系統(tǒng)服務(wù)也很簡單,使用“Tasklist /s 218.22.123.26 /u jtdd /p 12345678 /svc”命令,就可以查看IP地址為218.22.123.26的遠(yuǎn)程系統(tǒng)進(jìn)程所提供的服務(wù)。
4.查看調(diào)用DLL模塊文件的進(jìn)程列表 要查看本地系統(tǒng)中哪些進(jìn)程調(diào)用了shell32.dll模塊文件,只需在命令提示符下輸入“Tasklist /m shell32.dll”即可顯示這些進(jìn)程的列表。
5.使用篩選器查找指定的進(jìn)程 在命令提示符下輸入“TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running”,就可以列出系統(tǒng)中正在運(yùn)行的非SYSTEM狀態(tài)的所有進(jìn)程。其中“/FI”為篩選器參數(shù),“ne”和“eq”為關(guān)系運(yùn)算符“不相等”和“相等”。
小提示 談到“Tasklist”命令,我們就不得不提到它的孿生兄弟“Taskkill”命令,顧名思義,它是用來關(guān)掉進(jìn)程的。 要關(guān)掉本機(jī)的notepad.exe進(jìn)程,有兩種方法: 1.先使用Tasklist查找它的PID,假設(shè)系統(tǒng)顯示本機(jī)notepad.exe進(jìn)程的PID值為1132,然后運(yùn)行“Taskkill /pid 1132”命令即可。其中“/pid”參數(shù)后面是要終止進(jìn)程的PID值。 2.直接運(yùn)行“Taskkill /IM notepad.exe”命令,其中“/IM”參數(shù)后面為進(jìn)程的圖像名。
================ 查看本地進(jìn)程:tasklist /svc 查殺本地進(jìn)程:taskkill /pid taskkill /im explorer.exe /f taskkill /im wscript.exe 查看遠(yuǎn)程計(jì)算機(jī)進(jìn)程:tasklist /s 192.168.1.160 /u administrator
結(jié)束一個(gè)或多個(gè)任務(wù)或進(jìn)程。可以根據(jù)進(jìn)程 ID 或圖像名來結(jié)束進(jìn)程。
|
0 tasklist 列出進(jìn)程列表。 1 tskill 終止不帶后綴的進(jìn)程,如:tskill notepad。 2 taskkill 終止帶后綴的進(jìn)程,如:taskkill /im test1.exe。taskkill的具體參數(shù)說明如下: TASKKILL [/S system ]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]描述:這個(gè)命令行工具可用來結(jié)束至少一個(gè)進(jìn)程。可以根據(jù)進(jìn)程 id 或圖像名來結(jié)束進(jìn)程。參數(shù)列表:/S system 指定要連接到的遠(yuǎn)程系統(tǒng)。/U [domain\]user 指定應(yīng)該在哪個(gè)用戶上下文執(zhí)行這個(gè)命令。/P [password] 為提供的用戶上下文指定密碼。如果忽略,提示輸入。/F 指定要強(qiáng)行終止進(jìn)程。/FI filter 指定篩選進(jìn)或篩選出查詢的的任務(wù)。/PID process id 指定要終止的進(jìn)程的PID。/IM image name 指定要終止的進(jìn)程的圖像名。通配符 '*'可用來指定所有圖像名。/T Tree kill: 終止指定的進(jìn)程和任何由此啟動(dòng)的子進(jìn)程。/? 顯示幫助/用法。篩選器:篩選器名 有效運(yùn)算符 有效值----------- --------------- --------------STATUS eq, ne 運(yùn)行 | 沒有響應(yīng)IMAGENAME eq, ne 圖像名PID eq, ne, gt, lt, ge, le PID 值SESSION eq, ne, gt, lt, ge, le 會(huì)話編號(hào)CPUTIME eq, ne, gt, lt, ge, le CPU 時(shí)間,格式為hh:mm:ss。hh - 時(shí),mm - 鐘,ss - 秒MEMUSAGE eq, ne, gt, lt, ge, le 內(nèi)存使用,單位為 KBUSERNAME eq, ne 用戶名,格式為[domain\]userMODULES eq, ne DLL 名SERVICES eq, ne 服務(wù)名WINDOWTITLE eq, ne 窗口標(biāo)題注意: 只有帶有篩選器的情況下,才能跟 /IM 切換使用通配符 '*'。注意: 遠(yuǎn)程進(jìn)程總是要強(qiáng)行終止,不管是否指定了 /F 選項(xiàng)。例如: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 任何有效字符串。 狀態(tài) eq, ne RUNNING|NOT RESPONDING magename eq, ne 任何有效字符串。 PID eg, ne, gt, lt, ge, le 任何有效的正整數(shù)。 Session eg, ne, gt, lt, ge, le 任何有效的會(huì)話數(shù)。 CPUTime eq, ne, gt, lt, ge, le hh:mm:ss 格式的有效時(shí)間。mm 參數(shù)和 ss 參數(shù)應(yīng)在 0 到 59 之間,hh 參數(shù)可以是任何一個(gè)有效的無符號(hào)的數(shù)值。 Memusage eg, ne, gt, lt, ge, le 任何有效的整數(shù)。 其中eq為等于,ne為不等于
|