學(xué)習(xí)啦>學(xué)習(xí)電腦>電腦安全>系統(tǒng)安全>

dos命令之for用法詳解

林澤 時(shí)間:

  批處理 bat中的for命令的作用,非常的不錯(cuò),可以節(jié)省很多效率,它可以讀取文章的沒一行.下面是學(xué)習(xí)啦小編收集整理的dos命令之for用法詳解,希望對大家有幫助~~

  dos命令之for用法詳解

  工具/原料

  DOS

  方法/步驟

  for幫助文檔

  對一組文件中的每一個(gè)文件執(zhí)行某個(gè)特定命令。

  FOR %variable IN (set) DO command [command-parameters]

  %variable 指定一個(gè)單一字母可替換的參數(shù)。

  (set) 指定一個(gè)或一組文件。可以使用通配符。

  command 指定對每個(gè)文件執(zhí)行的命令。

  command-parameters

  為特定命令指定參數(shù)或命令行開關(guān)。

  在批處理程序中使用 FOR 命令時(shí),指定變量請使用 %%variable

  而不要用 %variable。變量名稱是區(qū)分大小寫的,所以 %i 不同于 %I.

  如果命令擴(kuò)展被啟用,下列額外的 FOR 命令格式會受到

  支持:

  FOR /D %variable IN (set) DO command [command-parameters]

  如果集中包含通配符,則指定與目錄名匹配,而不與文件

  名匹配。

  FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

  檢查以 [drive:]path 為根的目錄樹,指向每個(gè)目錄中的

  FOR 語句。如果在 /R 后沒有指定目錄,則使用當(dāng)前

  目錄。如果集僅為一個(gè)單點(diǎn)(.)字符,則枚舉該目錄樹。

  FOR /L %variable IN (start,step,end) DO command [command-parameters]

  該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列。

  因此,(1,1,5) 將產(chǎn)生序列 1 2 3 4 5,(5,-1,1) 將產(chǎn)生

  序列 (5 4 3 2 1)。

  FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]

  FOR /F ["options"] %variable IN ("string") DO command [command-parameters]

  FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

  或者,如果有 usebackq 選項(xiàng):

  FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]

  FOR /F ["options"] %variable IN ("string") DO command [command-parameters]

  FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

  filenameset 為一個(gè)或多個(gè)文件名。繼續(xù)到 filenameset 中的

  下一個(gè)文件之前,每份文件都已被打開、讀取并經(jīng)過處理。

  處理包括讀取文件,將其分成一行行的文字,然后將每行

  解析成零或更多的符號。然后用已找到的符號字符串變量值

  調(diào)用 For 循環(huán)。以默認(rèn)方式,/F 通過每個(gè)文件的每一行中分開

  的第一個(gè)空白符號。跳過空白行。您可通過指定可選 "options"

  參數(shù)替代默認(rèn)解析操作。這個(gè)帶引號的字符串包括一個(gè)或多個(gè)

  指定不同解析選項(xiàng)的關(guān)鍵字。這些關(guān)鍵字為:

  eol=c - 指一個(gè)行注釋字符的結(jié)尾(就一個(gè))

  skip=n - 指在文件開始時(shí)忽略的行數(shù)。

  delims=xxx - 指分隔符集。這個(gè)替換了空格和跳格鍵的

  默認(rèn)分隔符集。

  tokens=x,y,m-n - 指每行的哪一個(gè)符號被傳遞到每個(gè)迭代

  的 for 本身。這會導(dǎo)致額外變量名稱的分配。m-n

  格式為一個(gè)范圍。通過 nth 符號指定 mth。如果

  符號字符串中的最后一個(gè)字符星號,

  那么額外的變量將在最后一個(gè)符號解析之后

  分配并接受行的保留文本。

  usebackq - 指定新語法已在下類情況中使用:

  在作為命令執(zhí)行一個(gè)后引號的字符串并且一個(gè)單

  引號字符為文字字符串命令并允許在 filenameset

  中使用雙引號擴(kuò)起文件名稱。

  某些范例可能有助:

  FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

  會分析 myfile.txt 中的每一行,忽略以分號打頭的那些行,將

  每行中的第二個(gè)和第三個(gè)符號傳遞給 for 程序體;用逗號和/或

  空格定界符號。請注意,這個(gè) for 程序體的語句引用 %i 來

  取得第二個(gè)符號,引用 %j 來取得第三個(gè)符號,引用 %k

  來取得第三個(gè)符號后的所有剩余符號。對于帶有空格的文件

  名,您需要用雙引號將文件名括起來。為了用這種方式來使

  用雙引號,您還需要使用 usebackq 選項(xiàng),否則,雙引號會

  被理解成是用作定義某個(gè)要分析的字符串的。

  %i 專門在 for 語句中得到說明,%j 和 %k 是通過

  tokens= 選項(xiàng)專門得到說明的。您可以通過 tokens= 一行

  指定最多 26 個(gè)符號,只要不試圖說明一個(gè)高于字母 'z' 或

  'Z' 的變量。請記住,F(xiàn)OR 變量是單一字母、分大小寫和全局的;而且,

  同時(shí)不能有 52 個(gè)以上都在使用中。

  您還可以在相鄰字符串上使用 FOR /F 分析邏輯;方法是,

  用單引號將括號之間的 filenameset 括起來。這樣,該字符

  串會被當(dāng)作一個(gè)文件中的一個(gè)單一輸入行。

  最后,您可以用 FOR /F 命令來分析命令的輸出。方法是,將

  括號之間的 filenameset 變成一個(gè)反括字符串。該字符串會

  被當(dāng)作命令行,傳遞到一個(gè)子 CMD.EXE,其輸出會被抓進(jìn)

  內(nèi)存,并被當(dāng)作文件分析。因此,以下例子:

  FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

  會枚舉當(dāng)前環(huán)境中的環(huán)境變量名稱。

  另外,F(xiàn)OR 變量參照的替換已被增強(qiáng)。您現(xiàn)在可以使用下列

  選項(xiàng)語法:

  ~I - 刪除任何引號("),擴(kuò)展 %I

  %~fI - 將 %I 擴(kuò)展到一個(gè)完全合格的路徑名

  %~dI - 僅將 %I 擴(kuò)展到一個(gè)驅(qū)動器號

  %~pI - 僅將 %I 擴(kuò)展到一個(gè)路徑

  %~nI - 僅將 %I 擴(kuò)展到一個(gè)文件名

  %~xI - 僅將 %I 擴(kuò)展到一個(gè)文件擴(kuò)展名

  %~sI - 擴(kuò)展的路徑只含有短名

  %~aI - 將 %I 擴(kuò)展到文件的文件屬性

  %~tI - 將 %I 擴(kuò)展到文件的日期/時(shí)間

  %~zI - 將 %I 擴(kuò)展到文件的大小

  %~$PATH:I - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)展

  到找到的第一個(gè)完全合格的名稱。如果環(huán)境變量名

  未被定義,或者沒有找到文件,此組合鍵會擴(kuò)展到

  空字符串

  可以組合修飾符來得到多重結(jié)果:

  %~dpI - 僅將 %I 擴(kuò)展到一個(gè)驅(qū)動器號和路徑

  %~nxI - 僅將 %I 擴(kuò)展到一個(gè)文件名和擴(kuò)展名

  %~fsI - 僅將 %I 擴(kuò)展到一個(gè)帶有短名的完整路徑名

  %~dp$PATH:I - 搜索列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)展

  到找到的第一個(gè)驅(qū)動器號和路徑。

  %~ftzaI - 將 %I 擴(kuò)展到類似輸出線路的 DIR

  在以上例子中,%I 和 PATH 可用其他有效數(shù)值代替。%~ 語法

  用一個(gè)有效的 FOR 變量名終止。選取類似 %I 的大寫變量名

  比較易讀,而且避免與不分大小寫的組合鍵混淆。

  dos中for的用法

  for /參數(shù) %變量 in (集) do 命令

  FOR分四種參數(shù) D L R F

  一、參數(shù) /d

  for /d %%變量 in (集) do 命令

  /d 參數(shù)是指定僅對目錄而不是文件執(zhí)行的for命令。

  二、參數(shù) /R

  /R參數(shù)之后還可帶盤符及路徑

  for /r 此處可以帶有路徑 %變量 in (集) do 命令

  在/r 之后的那個(gè)路徑,指包含它之下的整個(gè)目錄樹(相當(dāng)于DOS命令tree里的范圍)中的所有目錄,如果僅為一個(gè)英文句點(diǎn) . ,是指當(dāng)前路徑下的目錄樹,如果省略了路徑則特指當(dāng)前目錄,而之后的in (集)則相當(dāng)于與前面每個(gè)目錄相配的文件集

  這里按in(集)中有無通配符分兩種情況

  1) in(集)中沒有通配符

  指定的是單個(gè)文件或列舉的具體文件(多個(gè)文件名之間用分隔符分隔,如空格、逗號等)

  例2

  @echo of

  for /r . %i in (abc.txt) do echo. > %i

  echo on

  注:這里for /r 后的路徑僅有一個(gè) . 而后面每個(gè)循環(huán)中echo. > %i相當(dāng)于創(chuàng)建一個(gè)僅有一空行的文本文件,整體效果是在當(dāng)前目錄下包括子錄,每個(gè)目錄中建一個(gè)abc.txt。

  例3 (放入批處理中)

  @echo off

  rem 顯示d:盤中所有文件名為file1和file2的列表

  for /r d:\ %%h in (file1,file2) do if exist%%h echo %%h

  pause

  2) in(集)中含有通配符*或?

  這種里面的do命令將處理前面 /r指定的目錄系列里每個(gè)含有in(集)中文件的項(xiàng),而不去理會不含有相配文件的那些目錄

  例4:

  @echo off

  rem 刪除C盤中所有*.chk的文件

  for /r c:\ %%h in (*.chk) do del /q %%h

  pause

  注:del /q 表示用安靜模式刪除(不需確認(rèn))

  三、參數(shù) /L

  for /L%%變量 in (起始值,每次增值,結(jié)束時(shí)的比較值) do 命令

  (上面L也可用小寫,主要為了視覺上不與數(shù)字1混淆而沒用小寫)

  (起始值,每次增值,結(jié)束時(shí)的比較值)相當(dāng)于一個(gè)等差數(shù)字序列,從“起始值”的數(shù)字開始,每次增加多少(也可設(shè)定為負(fù)數(shù))為“每次增值”,并與“結(jié)束時(shí)的比較值”比較,超出則退出for循環(huán)(也不執(zhí)行本輪后面的do 命令)

  例如 (1,1,3) 將產(chǎn)生序列 (1 2 3);(1,2,9)將產(chǎn)生序列(1 3 5 7 9);(5,-1,1) 將產(chǎn)生序列 (5 4 3 2 1);(1,3,18)將產(chǎn)生序列(1 7 10 13 16)

  例5

  @echooff

  ::在D盤建立aa1~ aa5五個(gè)文件夾

  for /L%%i in (1,1,5) do md d:\aa %%i

  pause

  注:在行首,單個(gè)冒號:接一名稱,是標(biāo)號行,對應(yīng)于批處理中g(shù)o后指向的位置,而雙冒號::一般是用來作注釋用,注釋在批處理中可以用rem加空格來表達(dá),二者稍有不同,rem注釋在未關(guān)閉命令回顯時(shí)會在屏幕顯示出來,而::則什么情況下都不會顯示。

  四、參數(shù) /f

  這個(gè)參數(shù)/f將會打開(集)里的文件,使for命令能處理文本文件的讀取和添加刪除替換等編輯性的操作,可謂功能強(qiáng)大,因此也相對復(fù)雜一些。

  文件名-集

  for /f “選項(xiàng)” %變量 in ( “字符串”-集 ) do 命令

  ‘命令'-集

  /f 后可以帶有幾種選項(xiàng),不帶選項(xiàng)當(dāng)然也是合格的格式,而帶有參數(shù)則必須以引號整體括起來,后面的集里主要由三種形式形成的,最終在for循環(huán)中的每一輪中會形成讀取一行字符串,來給指定的%變量、以及給由于選項(xiàng)中派生出附加變量賦值后,執(zhí)行do后面的命令

  下面以例子來具體說明和逐步理解各分項(xiàng)的用法

  例6

  假定d:\abc.txt內(nèi)容如下:

  姓名 性別 年齡 等-級

  張三 男 36 A-1

  李四 男 29 B-2

  趙六 女 31 A-2

  執(zhí)行如下命令:

  for /f %c in (d:\abc.txt) do @echo %c

  則屏幕上顯示:

  姓名

  張三

  李四

  趙六

  解釋:這是for /r 在“%變量”前缺省參數(shù)選項(xiàng)時(shí)的情況,循環(huán)中每輪會默認(rèn)以空格為分隔,在打開的文件中逐行給字符串分段,又因?yàn)闆]給增添附加變量(即僅一個(gè)變量%c)則僅把第一段的字符賦給%c,再執(zhí)行 do后的命令,然后進(jìn)行循環(huán)的下一輪,并且默認(rèn)忽略空行

  改一下:

  for /f “skip=1 tokens=1,4 delims= ” %c in(d:\abc.txt) do @echo %c %d

  顯示為:

  張三 A-1

  李四 B-2

  趙六 A-2

  解:

  skip=1 表示文本開始忽略的行數(shù)為1 ——忽略幾行

  delims= 在一行中,用什么單個(gè)符號(可以有多字符組合,之間也不能加空格,被理解為多項(xiàng)單個(gè)字符,如要空格符須放最后)來分隔字符串作為讀取賦值的單元(形成一段),本例中等號后是空的表示僅用空格來分隔。——用什么刀來切分

  tokens=1,4 這個(gè)等號后的數(shù)字表示依次取第幾個(gè)被分隔的字符串段,來分別賦給%變量及順序附加的變量,本例取第1個(gè)段賦給%c,第4個(gè)段賦給c后的一個(gè)變量也就是賦給%d,并且,可以寫成tokens=1,2,5-7或tokens=1,2,3* 或tokens=1,2,5,7分別表示取第1,2,5,6,7(依次賦給%c, %d, %e, %,f, %g共5個(gè)變量)、1,2,3及3后的所有段(要賦給3個(gè)變量)、1,2,5,7(要賦給4個(gè)變量),tokens=后的數(shù)字號可以不按順序,但書寫的順序與分配給變量的順序是對應(yīng)的,這是賦值,至于之后do命令中用不用是另一回事。換句話 ­­——最多只需取哪幾段

  in (變量) 中的那個(gè)變量,代表起始的一個(gè)變量名,按tokens中定義的總個(gè)數(shù)來擴(kuò)充附加變量名,如總個(gè)數(shù)為3,則%c 就附加%d和%e ,要是%C就附加%D%E… 本例中tokens=1,4僅需兩個(gè),起始的是in () 括號中的%c 則每行中第一段賦給%c,第4段賦給變量%d

  以第二行(第一行被skip=1跳過了)為例,在 “張三 男 36 A-1 ” 中(正好也是用的空格分隔)共被空格之刀切為五段,只要第1、4,即張三賦給%c, A-1賦給%d,執(zhí)行@echo %c %d然后下一輪…而空行照舊被省去了。

  再稍改一下:

  for /f “skip=1 tokens=4,1 delims=- “ %c in(d:\abc.txt) do @echo %c %d

  則顯示為:

  A 張三

  B 李四

  A 趙六

  例7

  假定d:\aa.txt內(nèi)容如下:

  Volume in drive D is MYDA

  Volume Serial Number is C35D-8998

  Directory of D:tmp

  09/25/2001 10:40 AM 11,235 yg0925.txt

  11/12/2001 04:29 pM 795 buple.txt

  04/11/2002 04:18 AM 2,043 vitn.txt

  3File(s) 12,673 bytes

  0 Dir(s) 5,020,200,655 bytes free

  在命令行輸入:

  for /f "skip=5 tokens=5" %a in(d:\aa.txt) do @echo %a

  會顯示:

  yg0925.txt

  buple.txt

  vitn.txt

  free

  本意想把文件里列出的文件顯示出來(當(dāng)然也可以換成對文件進(jìn)行其他命令操作)

  通過skip=5 忽略掉前5行,默認(rèn)以空格分隔后tokens=5取每行第五段字符就順利地把文件名賦給變量%a,美中不足最后一行取了個(gè)不是文件名的(當(dāng)然可用其他方法處理這個(gè)多余的只是for/f中沒提供忽略最后幾行的格式),而倒數(shù)第二行則無第五段。

  顯然例中aa.txt里的內(nèi)容是某次執(zhí)行dir命令后的內(nèi)容。它可用類似命令:

  dir >d:\aa.txt來建立

  題外話,如果在dir中加入合適的參數(shù)/b,就可以回避多余的部分,還可加入/ad只顯示目錄,加入/a-d只顯示文件等

  那么,我們完全可以直接書寫命令放入in后的(‘命令'-集)中

  for /f "skip=5 tokens=5 " %a in('dir') do @echo %a

  效果一樣。

  注:命令集需用單引號括起來以表示不是文件集,如用雙引號括起來則表示是字符串集,本例是為了說明for命令的用法,真正有這種用途也愿意用前面“題外話”的方法。如果你在執(zhí)行本例后什么也沒顯示,你需要先用集里的命令先執(zhí)行一次,看它顯示的格式,也許需要把tokens=5 改成tokens=4 或許還應(yīng)當(dāng)給dir加上參數(shù) /a-d以回避顯示出目錄。

  如果集里是由多個(gè)文件組成,那么處理完一個(gè)文件后又處理完又去處理另一個(gè)文件,每個(gè)文件行數(shù)不同循環(huán)次數(shù)(do命令的次數(shù))也將因此不同。

  如果集里是由命令產(chǎn)生的系統(tǒng),那么你必須首先熟悉該命令執(zhí)行后會產(chǎn)生怎樣效果的字符系統(tǒng),才能正確安排后面的do命令

  畫龍點(diǎn)睛:無論in后的集是哪種形式,for/f 都最終分解為字符串,按需要是否“忽略幾行”(skip=)、“用什么刀來切分”(delims= )、“最多只需取哪幾段”(tokens=)將集里形成的字符串,逐行地分段賦給%或%%后的變量及可能順延擴(kuò)展出的變量,以執(zhí)行do后的命令,每一行即為一輪循環(huán)。這里沒完整說明全部參數(shù),請?jiān)诿钚杏胒or/?查看。(下面的斜體字是復(fù)制的幫助里的內(nèi)容)

  例如:

  對于帶有空格的文件名,您需要用雙引號將文件名括起來。為了用這種方式來使用雙引號,您還需要使用 usebackq 選項(xiàng),否則,雙引號會被理解成是用作定義某個(gè)要分析的字符串的。——換句話說,帶有usebackq(放在for /f 之后的引號里)參數(shù)時(shí) in ()里用雙引號表示的仍是文件名。

  還有一個(gè)選項(xiàng)eol= :前面所說skip=是表示忽略開始的幾行,其實(shí)默認(rèn)狀況還忽略所有分號“ ; ”開始的行,如果你想不忽略分號開始的行,或者想忽略自己指定一字符開始的行就可以在for /f 之后那引號參數(shù)里使用eol=你自己定義的字符,但它不像delims=的那樣可定義多個(gè),只允許定義一個(gè)。

  另一花樣:可以用 %~ 操作符將文件名分離成文件名、擴(kuò)展名、盤符等獨(dú)立部分 ,請看for/?中的解釋(其中示例的變量為%I):

  另外,F(xiàn)OR 變量參照的替換已被增強(qiáng)。您現(xiàn)在可以使用下列選項(xiàng)語法:

  ~I - 刪除任何引號("),擴(kuò)充 %I

  %~fI - 將 %I 擴(kuò)充到一個(gè)完全合格的路徑名

  %~dI - 僅將 %I 擴(kuò)充到一個(gè)驅(qū)動器號

  %~pI - 僅將 %I 擴(kuò)充到一個(gè)路徑

  %~nI - 僅將 %I 擴(kuò)充到一個(gè)文件名

  %~xI - 僅將 %I 擴(kuò)充到一個(gè)文件擴(kuò)展名

  %~sI - 擴(kuò)充的路徑只含有短名

  %~aI - 將 %I 擴(kuò)充到文件的文件屬性

  %~tI - 將 %I 擴(kuò)充到文件的日期/時(shí)間

  %~zI - 將 %I 擴(kuò)充到文件的大小

  %~$PATH:I- 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)充

  到找到的第一個(gè)完全合格的名稱。如果環(huán)境變量名

  未被定義,或者沒有找到文件,此組合鍵會擴(kuò)充到空字符串

  可以組合修飾符來得到多重結(jié)果:

  %~dpI - 僅將 %I 擴(kuò)充到一個(gè)驅(qū)動器號和路徑

  %~nxI - 僅將 %I 擴(kuò)充到一個(gè)文件名和擴(kuò)展名

  %~fsI - 僅將 %I 擴(kuò)充到一個(gè)帶有短名的完整路徑名

  %~dp$PATH:I- 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)充

  到找到的第一個(gè)驅(qū)動器號和路徑。

  %~ftzaI- 將 %I 擴(kuò)充到類似輸出線路的 DIR

  簡記:凡是 %~ 打頭的操作符,都是文件名或環(huán)境變量的分離操作。而每項(xiàng)要想運(yùn)用自如,則需要付出辛勤的練習(xí)。

  練習(xí):(我偷點(diǎn)懶,自己不作了...)

  遍歷C、D盤,查找已知文件名(接收鍵盤輸入),把其存放位置、時(shí)間,記錄到D:\mynote.txt 記錄格式如:

  xx年xx月xx日 經(jīng)查找在C盤、D盤的xx文件情況如下:

  時(shí)間 位置

  提示:可能用到的DOS命令、變量、參數(shù): echo、set 、set/p 、%date%、%~ >、>>

  總結(jié)及提示:

  for 命令的實(shí)際用法基本上已終結(jié),但是僅此是不能寫出強(qiáng)大功能的批處理的,它只是一條DOS命令,需要熟練一些其他的DOS命令和Windows系統(tǒng)提供的命令,組合運(yùn)用,才能充分發(fā)揮其強(qiáng)大、實(shí)用的功能,使得一些復(fù)雜事情,處理起來意想不到的簡潔方便。

  附:常見在批處理for命令中需要的一個(gè)的命令或者叫環(huán)境設(shè)置:

  for命令實(shí)際上是會作循環(huán),如果在每輪的命令中改變某環(huán)境變量值,在默認(rèn)狀態(tài),一條for命令用%環(huán)境變量%只取一次值的,那么下輪循環(huán)中再用時(shí)還是改變前的值(包括do后面帶有括號里的多條命令的執(zhí)行期間),就沒達(dá)到預(yù)期目的,為此,引入下面命令:

  setlocal enabledelayedexpansion

  開始批處理文件中環(huán)境改動的本地化操作,并啟動延緩環(huán)境變量擴(kuò)展。在執(zhí)行SETLOCAL 達(dá)到批處理文件結(jié)尾時(shí),對于該批處理文件的每個(gè)尚未執(zhí)行的 setlocal 命令,都會有一個(gè)隱含的 endlocal 被執(zhí)行。

  在取變量值時(shí),用!變量名!可以動態(tài)取值,延遲環(huán)境變量擴(kuò)充允許您使用一個(gè)不同的字符(驚嘆號)在執(zhí)行時(shí)間擴(kuò)充環(huán)境變量。這個(gè)用法實(shí)際是屬于在批處理中所有復(fù)合型命令都需要注意的。如果批處理結(jié)束后不希望將改變的環(huán)境保留,建議總是加上setlocal 。

  要是結(jié)合一些其他復(fù)雜些的有關(guān)系統(tǒng)的、網(wǎng)絡(luò)的命令(如wmic、net)進(jìn)來,那才是方顯FOR英雄本色,比如遍歷本地磁盤可以用命令:wmic logicaldiskwhere "drivetype=3" get name 顯然要在所有磁盤里查找某文件并作相應(yīng)操作就很容易了,用好for命令也是需要其他命令和計(jì)算機(jī)基礎(chǔ)配合的。

  DOS for 實(shí)例

  格式:FOR [參數(shù)] %%變量名 IN (相關(guān)文件或命令) DO 執(zhí)行的命令

  作用:對一個(gè)或一組文件,字符串或命令結(jié)果中的每一個(gè)對象執(zhí)行特定命令,達(dá)到我們想要的結(jié)果。

  注意:在批處理文件中使用 FOR 命令時(shí),指定變量請使用 %%variable,而不要用 %variable。變量名稱是區(qū)分大小寫的,所以 %i 不同于 %I.

  關(guān)于:for命令可以帶參數(shù)或不帶參數(shù),帶參數(shù)時(shí)支持以下參數(shù):/d /l /r /f

  下面分別解釋一下

  ===

  零:無參數(shù)時(shí):

  ---

  FOR %variable IN (set) DO command [command-parameters]

  %variable 指定一個(gè)單一字母可替換的參數(shù)。

  (set) 指定一個(gè)或一組文件??梢允褂猛ㄅ浞?/p>

  command 指定對每個(gè)文件執(zhí)行的命令。

  command-parameters

  為特定命令指定參數(shù)或命令行開關(guān)。

  TTT示例:

  for %%i in (t*.*) do echo %%i --顯示當(dāng)前目錄下與t*.*相匹配的文件(只顯示文件名,不顯示路徑)

  for %%i in (d:\mydocuments\*.doc) do @echo %%i --顯示d:\mydocuments\目錄下與*.doc相匹配的文件

  ===

  一、參數(shù) /d (參數(shù)只能顯示當(dāng)前目錄下的目錄名字)

  ---

  格式:FOR /D %variable IN (set) DO command [command-parameters]

  這個(gè)參數(shù)主要用于目錄搜索,不會搜索文件,/D 參數(shù)只能顯示當(dāng)前目錄下的目錄名字。(TTT特別說明:只會搜索指定目錄下的目錄,不會搜索再下一級的目錄。)

  TTT示例:

  for /d %%i in (c:\*) do echo %%i --顯示c盤根目錄下的所有目錄

  for /d %%i in (???) do echo %%i --顯示當(dāng)前目錄下名字只有1-3個(gè)字母的目錄

  ===

  二、參數(shù) /R (搜索指定路徑及所有子目錄中與set相符合的所有文件)

  ---

  格式:FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

  此命令會搜索指定路徑及所有子目錄中與set相符合的所有文件,注意是指定路徑及所有子目錄。

  1、set中的文件名如果含有通配符(?或*),則列舉/R參數(shù)指定的目錄及其下面的所用子目錄中與set相符合的所有文件,無相符文件的目錄則不列舉。

  2、如果set中為具體文件名,不含通配符,則枚舉該目錄樹(即列舉該目錄及其下面的所有子目錄)(并在后面加上具體的文件名),而不管set中的指定文件是否存在。

  例:for /r c:\ %%i in (*.exe) do echo %%i --把C盤根目錄,和每個(gè)目錄的子目錄下面全部的EXE文件都列出來了!!!!

  TTT示例:

  for /r c:\ %%i in (boot.ini) do echo %%i --枚舉了c盤所有目錄

  for /r d:\backup %%i in (1) do echo %%i --枚舉d\backup目錄

  for /r c:\ %%i in (boot.ini) do if exist %%i echo %%i --很好的搜索命令,列舉boot.ini存在的目錄

  ===

  三、參數(shù) /L (該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列??梢允褂秘?fù)的 Step)

  ---

  格式:FOR /L %variable IN (start,step,end) DO command [command-parameters]

  該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列??梢允褂秘?fù)的 Step

  TTT示例:

  for /l %%i in (1,1,5) do @echo %%i --輸出1 2 3 4 5

  for /l %%i in (1,2,10) do @echo %%i --輸出1,3,5,7,9

  for /l %%i in (100,-20,1) do @echo %%i --輸出100,80,60,40,20

  for /l %%i in (1,1,5) do start cmd --打開5個(gè)CMD窗口

  for /l %%i in (1,1,5) do md %%i --建立從1~5共5個(gè)文件夾

  for /l %%i in (1,1,5) do rd /q %%i --刪除從1~5共5個(gè)文件夾

dos命令之for用法詳解相關(guān)文章:

1.dos命令詳解 dos命令大全

2.基本DOS常用命令詳解

3.dos命令行怎么使用

4.電腦運(yùn)行命令以及dos命令大全

5.Windows下怎么使用dos命令

dos命令之for用法詳解

批處理 bat中的for命令的作用,非常的不錯(cuò),可以節(jié)省很多效率,它可以讀取文章的沒一行.下面是學(xué)習(xí)啦小編收集整理的dos命令之for用法詳解,希望對大家有幫助~~ dos命令之for用法詳解 工具/原料 DOS 方法/步驟 for幫助文檔 對一組文件中
推薦度:
點(diǎn)擊下載文檔文檔為doc格式

精選文章

  • 怎樣判斷文件是否為惡意文件
    怎樣判斷文件是否為惡意文件

    使用電腦時(shí),往往會遇到一些不太可信的文件,如破解版游戲或軟件,算號器及注冊機(jī),小眾軟件,網(wǎng)購時(shí)對方給的文件等,這些東西有可能包含病毒木馬

  • 怎樣查殺電腦中的頑固病毒
    怎樣查殺電腦中的頑固病毒

    電腦中的頑固病毒如何查殺?在刪除后等你重啟電腦,它又來了,輕松徹底地消滅你系統(tǒng)中的病毒。以下是學(xué)習(xí)啦小編給大家整理的清除電腦中頑固病毒的方

  • 怎樣保證安卓手機(jī)的安全
    怎樣保證安卓手機(jī)的安全

    安卓智能手機(jī)在學(xué)生族中非常流行,原因有以下幾點(diǎn):首先,它們經(jīng)濟(jì)實(shí)惠。其次,它們極具靈活性,因此使用者可以選擇最適合自己的設(shè)置。但有這么一

  • Windows操作系統(tǒng)防病毒妙招
    Windows操作系統(tǒng)防病毒妙招

    本文將介紹一些預(yù)防電腦中毒的方法,做好下面的措施,可以降低電腦中毒的幾率,這些措施只針對Windows操作系統(tǒng)。 1、必須安裝防火墻和殺毒軟件 不管你

3060159