成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > 終極dos批處理for循環(huán)命令詳解

終極dos批處理for循環(huán)命令詳解

熱門(mén)標(biāo)簽:如何申請(qǐng)400電話業(yè)務(wù)mm 玉林市機(jī)器人外呼系統(tǒng)哪家好 電話機(jī)器人全國(guó)招商 清遠(yuǎn)百度地圖標(biāo)注店鋪位置 電話機(jī)器人產(chǎn)品怎么樣 雷霆電銷機(jī)器人怎么樣 呼倫貝爾外呼系統(tǒng) 智能打電話機(jī)器人收費(fèi) 如何弄地圖標(biāo)注

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

  作用:對(duì)一個(gè)或一組文件,字符串或命令結(jié)果中的每一個(gè)對(duì)象執(zhí)行特定命令,達(dá)到我們想要的結(jié)果。
  注意:在批處理文件中使用 FOR 命令時(shí),指定變量請(qǐng)使用 %%variable,而不要用 %variable。變量名稱是區(qū)分大小寫(xiě)的,所以 %i 不同于 %I.
  關(guān)于:for命令可以帶參數(shù)或不帶參數(shù),帶參數(shù)時(shí)支持以下參數(shù):/d /l /r /f
  下面分別解釋一下

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

  FOR %variable IN (set) DO command [command-parameters]
  %variable 指定一個(gè)單一字母可替換的參數(shù)。
  (set) 指定一個(gè)或一組文件。可以使用通配符。
  command 指定對(duì)每個(gè)文件執(zhí)行的命令。
  command-parameters
  為特定命令指定參數(shù)或命令行開(kāi)關(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ù)主要用于目錄搜索,不會(huì)搜索文件,/D 參數(shù)只能顯示當(dāng)前目錄下的目錄名字。(TTT特別說(shuō)明:只會(huì)搜索指定目錄下的目錄,不會(huì)搜索再下一級(jí)的目錄。)

  TTT示例:
  for /d %%i in (c:\*) do echo %%i --顯示c盤(pán)根目錄下的所有目錄
  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]
  此命令會(huì)搜索指定路徑及所有子目錄中與set相符合的所有文件,注意是指定路徑及所有子目錄。

  1、set中的文件名如果含有通配符(?或*),則列舉/R參數(shù)指定的目錄及其下面的所用子目錄中與set相符合的所有文件,無(wú)相符文件的目錄則不列舉。
  2、如果set中為具體文件名,不含通配符,則枚舉該目錄樹(shù)(即列舉該目錄及其下面的所有子目錄)(并在后面加上具體的文件名),而不管set中的指定文件是否存在。
  例:for /r c:\ %%i in (*.exe) do echo %%i --把C盤(pán)根目錄,和每個(gè)目錄的子目錄下面全部的EXE文件都列出來(lái)了!!!!

  TTT示例:
  for /r c:\ %%i in (boot.ini) do echo %%i --枚舉了c盤(pán)所有目錄
  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 (該集表示以增量形式從開(kāi)始到結(jié)束的一個(gè)數(shù)字序列。可以使用負(fù)的 Step)
    格式:FOR /L %variable IN (start,step,end) DO command [command-parameters]
  該集表示以增量形式從開(kāi)始到結(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 --打開(kāi)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è)文件夾

四、參數(shù) /F (使用文件解析來(lái)處理命令輸出、字符串及文件內(nèi)容。)
    這個(gè)參數(shù)是最難的,參數(shù)又多,先簡(jiǎn)單的解釋一下:for命令帶這個(gè)參數(shù)可以分析文件內(nèi)容,字符串內(nèi)容或某一命令輸出的結(jié)果,并通過(guò)設(shè)置option得我們想要的結(jié)果。
  以下是某高手的解釋,感覺(jué)有點(diǎn)太專業(yè)了,自認(rèn)為不太容易理解,也列一下:
  [迭代及文件解析--使用文件解析來(lái)處理命令輸出、字符串及文件內(nèi)容。使用迭代變量定義要檢查的內(nèi)容或字符串,并使用各種options選項(xiàng)進(jìn)一步修改解析方式。使用options令牌選項(xiàng)指定哪些令牌應(yīng)該作為迭代變量傳遞。
  請(qǐng)注意:在沒(méi)有使用令牌選項(xiàng)時(shí),/F 將只檢查第一個(gè)令牌。文件解析過(guò)程包括讀取輸出、字符串或文件內(nèi)容,將其分成獨(dú)立的文本行以及再將每行解析成零個(gè)或更多個(gè)令牌。然后通過(guò)設(shè)置為令牌的迭代變量值,調(diào)用 for 循環(huán)。
  默認(rèn)情況下,/F 傳遞每個(gè)文件每一行的第一個(gè)空白分隔符號(hào)。跳過(guò)空行。]
    格式:
  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]

  TTT說(shuō)明:以上是WinXP系統(tǒng)中的幫助內(nèi)容,你可以注意到,兩者完全相同,這其實(shí)是系統(tǒng)的錯(cuò)誤,第二段“如果有 usebackq 選項(xiàng):”應(yīng)該以下的內(nèi)容:
  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] --(`command`中的引號(hào)為反引號(hào),是鍵盤(pán)上數(shù)字1左面的那個(gè)鍵)


  (TTT說(shuō)明:下面是詳細(xì)的解釋,大部分是系統(tǒng)中的幫助內(nèi)容,也有些錯(cuò)誤(怪不得for命令這么難學(xué)),已經(jīng)被我糾正了。)
  

1) OPTION關(guān)鍵字詳解:
  eol=c:指一個(gè)行注釋字符的結(jié)尾(就一個(gè))。例如:eol=; --忽略以分號(hào)打頭的那些行;
  skip=n:指在文件開(kāi)始時(shí)忽略的行數(shù)。例如:skip=2 --忽略2行;
  delims=xxx:指分隔符集。這個(gè)替換了空格和跳格鍵的默認(rèn)分隔符集。例如:[delims=, ] --指定用逗號(hào),空格對(duì)字符串進(jìn)行分隔。
  tokens=x,y,m-n:指每行的哪一個(gè)符號(hào)被傳遞到每個(gè)迭代的 for 本身。這會(huì)導(dǎo)致額外變量名稱的分配。m-n格式為一個(gè)范圍。通過(guò) nth 符號(hào)指定 mth。如果符號(hào)字符串中的最后一個(gè)字符是星號(hào),那么額外的變量將在最后一個(gè)符號(hào)解析之后分配并接受行的保留文本。例如:tokens=2,3* --將每行中的第二個(gè)和第三個(gè)符號(hào)傳遞給 for 程序體;tokens=2,3* ... i% --將會(huì)把取到的第二個(gè)字符串賦給i%,第三個(gè)賦給j%,剩下的賦給k%。
  關(guān)于usebackq,不同版本的系統(tǒng)提示不同的幫助,不過(guò)都有助于理解,所以都摘抄如下:
  (1),usebackq:使用后引號(hào)(鍵盤(pán)上數(shù)字1左面的那個(gè)鍵`)。未使用參數(shù)usebackq時(shí):file-set表示文件,不能加引號(hào),所以 不能含有空格;加雙引號(hào)表示字符串,即"string";加單引號(hào)表示執(zhí)行命令,即'command'。使用參數(shù)usebackq時(shí):file-set 和"file-set"都表示文件,當(dāng)文件路徑或名稱中有空格時(shí),就可以用雙引號(hào)括起來(lái);單引號(hào)表示字符串,即'string';后引號(hào)表示命令執(zhí)行,即 `command`。(此段是WinXP系統(tǒng)中的幫助)
  (2),usebackq:指定新語(yǔ)法已在下類情況中使用:在作為命令執(zhí)行一個(gè)后引號(hào)的字符串;并且一個(gè)單引號(hào)字符為文字字符串命令;并允許在filenameset中使用雙引號(hào)擴(kuò)起文件名稱。
  以上兩條結(jié)合著看,其實(shí)已經(jīng)可以明白了,我再說(shuō)明一下:
  其實(shí)這個(gè)參數(shù)的目的就是為了處理帶有空格的文件名。如果您要處理的文件名和路徑中含有空格,如果直接使用,會(huì)提示找不到文件。如果你用雙引號(hào)將文件名 和路徑括起來(lái)。這時(shí)候?qū)⒆鳛樽址幚?,而不是作為文件了。為了?yīng)對(duì)這種情況,所以才增加了這個(gè)“usebackq”參數(shù)。如果使用了這個(gè)參數(shù),對(duì)于括號(hào) 中的加雙引號(hào)的集合,系統(tǒng)就可以認(rèn)為是文件了;真正的字符串要加單引號(hào);命令要加反引號(hào)。

  2) file-set 為一個(gè)或多個(gè)文件名。繼續(xù)到 file-set 中的下一個(gè)文件之前,每份文件都已被打開(kāi)、讀取并經(jīng)過(guò)處理。處理包括讀取文件,將其分成一行行的文字,然后將每行解析成零或更多的符號(hào)。然后用已找到的符 號(hào)字符串變量值調(diào)用 For 循環(huán)。以默認(rèn)方式,/F 通過(guò)每個(gè)文件的每一行中分開(kāi)的第一個(gè)空白符號(hào)。跳過(guò)空白行。您可通過(guò)指定可選 "options"參數(shù)替代默認(rèn)解析操作。這個(gè)帶引號(hào)的字符串包括一個(gè)或多個(gè)指定不同解析選項(xiàng)的關(guān)鍵字。

  3) %i:專門(mén)在 for 語(yǔ)句中得到說(shuō)明,%j 和 %k 是通過(guò)tokens= 選項(xiàng)專門(mén)得到說(shuō)明的。您可以通過(guò) tokens= 一行指定最多 26 個(gè)符號(hào),只要不試圖說(shuō)明一個(gè)高于字母 'z' 或'Z' 的變量。請(qǐng)記住,F(xiàn)OR 變量是單一字母、分大小寫(xiě)和全局的;而且,同時(shí)不能有 52 個(gè)以上都在使用中。
  (TTT補(bǔ)充說(shuō)明:
  一般在tokens后只指定第一個(gè)參數(shù),如%%i或%%a,在后面使用第二個(gè)及兩個(gè)以上的參數(shù),自動(dòng)按順序往下排即可。如前面指定的是%%a,后面則 用%%b代表第二個(gè)結(jié)果,%%c代表第 三個(gè)結(jié)果。。。測(cè)試了一下tokens后指定多個(gè)變量名,沒(méi)有測(cè)試成功,應(yīng)該是不可以的。所以token后只能跟要使用的第一個(gè)變量名
  如果使用的變量名超過(guò)了%z或%Z,就無(wú)法使用了,曾經(jīng)以為會(huì)循環(huán)過(guò)來(lái):如%%z后可以使用%%a或%%A,但經(jīng)測(cè)試,這是不可以的。
  如:for /f "tokens=1,2,3* delims=-, " %%y in ("aa bb,cc-dd ee") do echo %%y %%z %%A %%a --只會(huì)輸出前兩個(gè)字符串,后面的兩個(gè)變量是無(wú)效的。)
    以下是系統(tǒng)提供的范例:
  FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k --
  說(shuō)明:會(huì)分析 myfile.txt 中的每一行,
  eol=; --忽略以分號(hào)打頭的那些行;
  tokens=2,3* --將每行中的第二個(gè)和第三個(gè)符號(hào)傳遞給 for 程序體;
  delims= , --用逗號(hào)和/或空格定界符號(hào)。
  %i --這個(gè) for 程序體的語(yǔ)句引用 %i 來(lái)取得取得的首個(gè)字符串(本例中為第二個(gè)符號(hào)),引用 %j 來(lái)取得第二個(gè)字符串(本例中為第三個(gè)符號(hào))引用 %k來(lái)取得第三個(gè)符號(hào)后的所有剩余符號(hào)。
  (TTT說(shuō)明:上述例子和說(shuō)明中明顯的錯(cuò)誤,%i應(yīng)該換為%%i(幫助中有明確的說(shuō)明:指定變量請(qǐng)使用 %%variable,而不要用 %variable,誤導(dǎo))

    TTT:下面列我做的幾個(gè)例子:
  1,分析文件的例子
  FOR /F "eol=; tokens=1,2* delims=,- " %%i in (d:\test.txt) do echo %%i %%j %%k
  2,分析字符串的例子:
  for /f "tokens=1,2,3* delims=-, " %%i in ("aa bb,cc-dd ee") do echo %%i %%j %%k %%l
  3,分析命令輸出的例子:
  FOR /F "tokens=1* delims==" %%i IN ('set') DO @echo [%%i----%%j]

  如果使用了usebackq參數(shù)后,命令如下,結(jié)果與上面的完全相同。
  1,分析文件的例子
  FOR /F "usebackq eol=; tokens=1,2* delims=,- " %%i in ("d:\test.txt") do echo %%i %%j %%k
  2,分析字符串的例子:
  for /f "usebackq tokens=1,2,3* delims=-, " %%i in ('aa bb,cc-dd ee') do echo %%i %%j %%k %%l
  3,分析命令輸出的例子:(會(huì)枚舉當(dāng)前環(huán)境中的環(huán)境變量名稱和值。)
  FOR /F "usebackq tokens=1* delims==" %%i IN (`set`) DO @echo [%%i----%%j]
  結(jié)果大家可以試一下,很容易就明白的。

  FOR命令中的變量
    FOR 變量參照的替換已被增強(qiáng)。您現(xiàn)在可以使用下列選項(xiàng)語(yǔ)法:
  ~I - 刪除任何引號(hào)("),擴(kuò)充 %I
  %~fI - 將 %I 擴(kuò)充到一個(gè)完全合格的路徑名
  %~dI - 僅將 %I 擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)
  %~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)境變量的目錄(TTT提示:是環(huán)境變量path的目錄),并將 %I 擴(kuò)充到找到的第一個(gè)完全合格的名稱。如果環(huán)境變量名未被定義,或者沒(méi)有找到文件,此組合鍵會(huì)擴(kuò)充到空字符串
  此外,還可以組合修飾符來(lái)得到多重結(jié)果:
  %~dpI - 僅將 %I 擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)和路徑
  %~nxI - 僅將 %I 擴(kuò)充到一個(gè)文件名和擴(kuò)展名
  %~fsI - 僅將 %I 擴(kuò)充到一個(gè)帶有短名的完整路徑名
  %~dp$PATH:i - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)充到找到的第一個(gè)驅(qū)動(dòng)器號(hào)和路徑。
  %~ftzaI - 將 %I 擴(kuò)充到類似輸出線路的 DIR
  在以上例子中,%I 和 PATH 可用其他有效數(shù)值代替。%~ 語(yǔ)法用一個(gè)有效的 FOR 變量名終止。選取類似 %I 的大寫(xiě)變量名比較易讀,而且避免與不分大小寫(xiě)的組合鍵混淆。

  (以上是系統(tǒng)幫助的內(nèi)容)
  我們可以看到每行都有一個(gè)大寫(xiě)字母"I",這個(gè)I其實(shí)就是我們?cè)贔OR帶入的變量,例如:
  FOR /F "usebackq eol=; tokens=1,2* delims=,- " %%x in ("d:\test.txt") do echo %%x %%y %%z
  這里我們就要把那個(gè)x,y,z改成%~fx,%~fy,%~fz。

    TTT特例:以下是我根據(jù)以上說(shuō)明作的一個(gè)綜合的例子,可以直接復(fù)制到記事本里,保存為bat格式(c盤(pán)下任一目錄),運(yùn)行后,可以直觀的看到擴(kuò)展后的效果。

@echo off
  echo ---顯示"dir c:\boot.ini /b /ah"
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 不擴(kuò)展變量 %%i
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~fI %%~fi --擴(kuò)充到一個(gè)完全合格的路徑名
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~dI %%~di --僅將變量擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~pI %%~pi --僅將變量擴(kuò)充到一個(gè)路徑
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~nI %%~ni --僅將變量擴(kuò)充到一個(gè)文件名
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~xI %%~xi --僅將變量擴(kuò)充到一個(gè)文件擴(kuò)展名
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~sI %%~si --擴(kuò)充的路徑只含有短名
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~aI %%~ai --將變量擴(kuò)充到文件的文件屬性
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~tI %%~ti --將變量擴(kuò)充到文件的日期/時(shí)間
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~zI %%~zi --將變量擴(kuò)充到文件的大小
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~$PATH:I %%~$PATH:i --查找列在路徑環(huán)境變量的目錄,并將變量擴(kuò)充到找到的第一個(gè)完全合格的名稱
  echo ---以下顯示組合修飾符來(lái)得到多重結(jié)果---:
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~dpI %%~dpi --僅將變量擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)和路徑
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~nxI %%~nxi --僅將變量擴(kuò)充到一個(gè)文件名和擴(kuò)展名
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~fsI %%~fsI --僅將變量擴(kuò)充到一個(gè)帶有短名的完整路徑名
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~dp$PATH:I %%~dp$PATH:i --查找列在路徑環(huán)境變量的目錄,并將變量擴(kuò)充到找到的第一個(gè)驅(qū)動(dòng)器號(hào)和路徑
  for /f "delims==" %%i in ('dir c:\boot.ini /b /ah') do echo 擴(kuò)展變量到~ftzaI %%~ftzai --將變量擴(kuò)充到類似輸出線路的DIR
  echo.
  echo ---顯示"dir C:\WINDOWS\system32\notepad.exe /b"
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 不擴(kuò)展變量 %%i
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~fI %%~fi --擴(kuò)充到一個(gè)完全合格的路徑名
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~dI %%~di --僅將變量擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~pI %%~pi --僅將變量擴(kuò)充到一個(gè)路徑
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~nI %%~ni --僅將變量擴(kuò)充到一個(gè)文件名
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~xI %%~xi --僅將變量擴(kuò)充到一個(gè)文件擴(kuò)展名
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~sI %%~si --擴(kuò)充的路徑只含有短名
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~aI %%~ai --將變量擴(kuò)充到文件的文件屬性
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~tI %%~ti --將變量擴(kuò)充到文件的日期/時(shí)間
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~zI %%~zi --將變量擴(kuò)充到文件的大小
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~$PATH:I %%~$PATH:i --查找列在路徑環(huán)境變量的目錄,并將變量擴(kuò)充到找到的第一個(gè)完全合格的名稱
  echo ---以下顯示組合修飾符來(lái)得到多重結(jié)果---:
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~dpI %%~dpi --僅將變量擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)和路徑
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~nxI %%~nxi --僅將變量擴(kuò)充到一個(gè)文件名和擴(kuò)展名
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~fsI %%~fsI --僅將變量擴(kuò)充到一個(gè)帶有短名的完整路徑名
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~dp$PATH:I %%~dp$PATH:i --查找列在路徑環(huán)境變量的目錄,并將變量擴(kuò)充到找到的第一個(gè)驅(qū)動(dòng)器號(hào)和路徑
  for /f "delims==" %%i in ('dir C:\WINDOWS\system32\notepad.exe /b') do echo 擴(kuò)展變量到~ftzaI %%~ftzai --將變量擴(kuò)充到類似輸出線路的DIR
  Pause


    TTT說(shuō)明:
  1,以上命令中,%%~fsI無(wú)法顯示,估計(jì)是系統(tǒng)錯(cuò)誤,因?yàn)?%~fI是擴(kuò)充到一個(gè)完全合格的路徑名,%%~sI只含有短文件名,本身是相互矛盾的,所以出錯(cuò)。不知是系統(tǒng)的錯(cuò)誤還是在考我們~~
  2,以上命令如果保存在別的盤(pán)中,無(wú)法顯示正確的驅(qū)動(dòng)器和路徑。
  3,如果想要%%~dp$PATH:i正常顯示,要保證環(huán)境變量path中確實(shí)有這個(gè)路徑:C:\WINDOWS\system32。


 下面依次說(shuō)明一下:

  一、 ~I - 刪除任何引號(hào)("),擴(kuò)展 %I
    這個(gè)變量的作用就如他的說(shuō)明,刪除引號(hào)!
  刪除引號(hào)規(guī)則如下(BAT兄補(bǔ)充!):
  1、若字符串首尾同時(shí)存在引號(hào),則刪除首尾的引號(hào);
  2、若字符串尾不存在引號(hào),則刪除字符串首的引號(hào);
  3、如果字符串中間存在引號(hào),或者只在尾部存在引號(hào),則不刪除。
  龍卷風(fēng)補(bǔ)充:無(wú)頭不刪,有頭連尾刪。

  我們來(lái)看這個(gè)例子,首先建立臨時(shí)文件temp.txt,內(nèi)容如下
  "1111
  "2222"
  3333"
  "4444"44
  "55"55"55
  也可建立個(gè)BAT文件代碼如下:

@echo off
  echo ^"1111>temp.txt
  echo "2222">>temp.txt
  echo 3333^">>temp.txt
  echo "4444"44>>temp.txt
  echo ^"55"55"55>>temp.txt
  rem 上面建立臨時(shí)文件,注意不成對(duì)的引號(hào)要加轉(zhuǎn)義字符^,重定向符號(hào)前不要留空格
  FOR /F "delims=" %%i IN (temp.txt) DO echo %%~i
  pause
  del temp.txt

    執(zhí)行后,我們看CMD的回顯如下:
  1111 #字符串前的引號(hào)被刪除了
  2222 #字符串首尾的引號(hào)都被刪除了
  3333" #字符串前無(wú)引號(hào),后面的引號(hào)保留
  4444"44 #字符串前面的引號(hào)刪除了,而中間的引號(hào)保留
  55"55"55 #字符串前面的引號(hào)刪除了,而中間的引號(hào)保留
  請(qǐng)按任意鍵繼續(xù). . .

  結(jié)果和之前temp.txt中的內(nèi)容對(duì)比一下,我們會(huì)發(fā)現(xiàn)第1、2、5行的引號(hào)都消失了,這就是刪除引號(hào)~i的作用了!
     二、 %~fI - 將 %I 擴(kuò)展到一個(gè)完全合格的路徑名
  示例:
  把代碼保存放在隨便哪個(gè)地方,我這里就放桌面吧.
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~fi
  pause

  執(zhí)行后顯示內(nèi)容如下
  C:\Documents and Settings\Administrator\桌面\test.bat
  C:\Documents and Settings\Administrator\桌面\test.vbs
  當(dāng)我把代碼中的 %%~fi直接改成%%i
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%i
  pause
  執(zhí)行后就會(huì)顯示以下內(nèi)容:
  test.bat
  test.vbs
  通過(guò)對(duì)比,我們很容易就看出沒(méi)有路徑了,這就是"將 %I 擴(kuò)展到一個(gè)完全合格的路徑名"的作用,也就是如果%i變量的內(nèi)容是一個(gè)文件名的話,他就會(huì)把這個(gè)文件所在的絕對(duì)路徑打印出來(lái),而不只單單打印一個(gè)文件名,自己動(dòng)手動(dòng)實(shí)驗(yàn)下就知道了!
     三、 %~dI - 僅將 %I 擴(kuò)展到一個(gè)驅(qū)動(dòng)器號(hào)
  看例子:
  代碼如下,我還是放到桌面執(zhí)行!
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~di
  pause
  執(zhí)行后我CMD里顯示如下
  C:
  C:
  我桌面就兩個(gè)文件test.bat,test.vbs,%%~di作用是,如果變量%%i的內(nèi)容是一個(gè)文件或者目錄名,他就會(huì)把他這文件或者目錄所在的盤(pán)符號(hào)打印出來(lái)!

     四、 %~pI - 僅將 %I 擴(kuò)展到一個(gè)路徑
  這個(gè)用法和上面一樣,他只打印路徑不打印文件名字
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~pi
  pause
  我就不打結(jié)果了,大家自己復(fù)制代碼看結(jié)果吧,下面幾個(gè)都是這么個(gè)用法,代碼給出來(lái),大家自己看結(jié)果吧!

     五、 %~nI - 僅將 %I 擴(kuò)展到一個(gè)文件名
  只打印文件名字
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ni
  pause

     六、 %~xI - 僅將 %I 擴(kuò)展到一個(gè)文件擴(kuò)展名
  只打印文件的擴(kuò)展名
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~xi
  pause

     七、 %~sI - 擴(kuò)展的路徑只含有短名
  打印絕對(duì)短文件名
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~si
  pause

     八、 %~aI - 將 %I 擴(kuò)展到文件的文件屬性
  打印文件的屬性
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ai
  pause

     九、 %~tI - 將 %I 擴(kuò)展到文件的日期/時(shí)間
  打印文件建立的日期
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ti
  pause

     十、 %~zI - 將 %I 擴(kuò)展到文件的大小
  打印文件的大小
  FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~zi
  pause
  龍卷風(fēng)補(bǔ)充:上面例子中的"delims=="可以改為"delims=",即不要分隔符

     十一、 %~$PATH:I - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)展到找到的第一個(gè)完全合格的名稱。如果環(huán)境變量名未被定義,或者沒(méi)有找到文件,此組合鍵會(huì)擴(kuò)展到空字符串
  這是最后一個(gè),和上面那些都不一樣,我單獨(dú)說(shuō)說(shuō)!
  然后在把這些代碼保存為批處理,放在桌面。
  @echo off
  FOR /F "delims=" %%i IN (“notepad.exe”) DO echo %%~$PATH:i
  pause
  龍卷風(fēng)補(bǔ)充:上面代碼顯示結(jié)果為C:\WINDOWS\system32\notepad.exe
  他的意思就在PATH變量里指定的路徑里搜索notepad.exe文件,如果有notepad.exe則會(huì)把他所在絕對(duì)路徑打印出來(lái),沒(méi)有就打印一個(gè)錯(cuò)誤!
  (TTT說(shuō)明,保存到桌面上,運(yùn)行顯示結(jié)果為:系統(tǒng)找不到文件 “notepad.exe”。查看環(huán)境變量path中確實(shí)有這個(gè)路徑,不明原因!后來(lái)發(fā)現(xiàn)了,原來(lái)是中文引號(hào)的原因。
  上面的命令應(yīng)該寫(xiě)成:
  FOR /F "delims=" %%i IN ("notepad.exe") DO echo %%~$PATH:i
  )
   最后發(fā)一個(gè)用批處理做一五子棋游戲可以參考下面的文章

https://www.jb51.net/article/29885.htm

您可能感興趣的文章:
  • 使用批處理實(shí)現(xiàn)啟動(dòng)和停止服務(wù)的代碼分析(net startnet stop)
  • 全盤(pán)刪除所有文件夾下的_desktop.ini的批處理bat文件
  • 一鍵清除_desktop.ini文件的批處理文件
  • 利用bat批處理程序通過(guò)DOS命令行刪除所有的空文件夾的方法
  • bat命令批處理判斷32位還是64位系統(tǒng)的多種方法
  • bat 批處理 for 命令快速入門(mén)
  • 批處理入門(mén)手冊(cè)之批處理常用DOS命令篇(find findstr)
  • 批處理入門(mén)手冊(cè)之批處理常用DOS命令篇(md、rd、ren、move)
  • 批處理入門(mén)手冊(cè)之批處理常用DOS命令篇(attrib、del、copy、xcopy)
  • 批處理入門(mén)手冊(cè)之批處理常用DOS命令篇(echo、rem、cd、dir)
  • DOS 批處理命令For循環(huán)命令詳解
  • Windows命令行bat批處理延遲sleep方法(批處理延時(shí))
  • 批處理模式下運(yùn)行 top 命令的方法

標(biāo)簽:樂(lè)山 株洲 公主嶺 白銀 三門(mén)峽 蕪湖 江西 臺(tái)州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《終極dos批處理for循環(huán)命令詳解》,本文關(guān)鍵詞  終極,dos,批處理,for,循環(huán),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《終極dos批處理for循環(huán)命令詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于終極dos批處理for循環(huán)命令詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    免费毛片在线播放| 动漫3d精品一区二区三区乱码| 欧美在线观看日本一区| 久久香蕉国产线看观看99| 国产视频在线观看一区二区| 日韩欧美久久| 国产精品久久久久久久久毛片| 久草在线资源网站| 九色porny丨首页入口在线| 亚洲国产女人aaa毛片在线| 精品亚洲夜色av98在线观看| 在线免费电影观看| 人人妻人人澡人人爽人人欧美一区| 一本色道无码道dvd在线观看| 欧美一区二区大片| 日本黄网站免费| 欧美色综合一区二区三区| 巨大黑人极品videos精品| 色135综合网| 在线播放日韩欧美| 二区三区不卡| 国产亚洲精品久久久优势| 日韩福利电影在线| 国产精品视频网站| 少妇人妻精品一区二区三区| 婷婷一区二区三区| 日韩欧美一级在线播放| 国产免费黄色网址| 性色av一区二区三区免费| 香蕉视频禁止18| 日韩成人免费在线观看| 欧美日韩性视频在线| 一区二区久久精品66国产精品| 麻豆乱码国产一区二区三区| 丰满岳乱妇一区二区三区| 天天干天天操天天操| 欧美成人免费全部观看天天性色| 亚洲啊v在线免费视频| www.操操操.com| 午夜在线播放视频欧美| 天天舔夜夜操| 国产精品大片免费观看| 蜜桃av噜噜一区二区三区| 欧美激情一区二区三区在线| 92国产精品视频| 国产在线欧美在线| 亚洲国产99精品国自产| 国产一区二区三区站长工具| 日韩av电影免费观看高清| 日韩福利视频导航| 日本边添边摸边做边爱的第三级| 91成人天堂久久成人| 婷婷中文字幕在线观看| 日本桃色视频| 国产精品一区二区三区不卡| 成人婷婷网色偷偷亚洲男人的天堂| 99re6热在线精品视频| 国产精品二区一区二区aⅴ污介绍| 97人人做人人爽香蕉精品| 日韩在线观看免费网站| 香蕉视频久久久| 久久久久久久久久久国产| 波多野结衣办公室双飞| 久久亚洲一级片| 国产精品中文字幕制服诱惑| av网站无病毒在线| 国产精品乱码一区二区三区| 亚洲国产精品久久人人爱蜜臀| 日本黄色播放器| 日本视频一区二区三区| 好男人香蕉影院| 欧美与黑人午夜性猛交久久久| 九九精品九九| 2019中文字幕在线观看| 亚洲影院天堂中文av色| 手机看片日韩国产| igao视频网在线视频| 欧美13一16娇小xxxx| 影音先锋国产| 国产精品视频首页| 欧美韩国一区| 久久久久久亚洲| 中文在线а天堂av| 91香蕉国产线在线观看| 日韩中文在线中文网三级| 日本中文字幕有码| 日本网站在线免费观看视频| 久久婷婷人人澡人人喊人人爽| 日韩电影一二三区| 免费操人视频| 岛国中文字幕| 91精品国产综合久久福利软件| 五月婷婷六月婷婷| 男女性色大片免费观看一区二区| 国产精品igao激情视频| 亚洲日韩欧美视频| 日韩欧美亚洲| 国产日韩欧美一区二区东京热| 亚洲综合丁香婷婷六月香| 国产欧美丝袜| 久久久久高清| 精品无人区一区二区三区竹菊| 瑜伽美女视频| 韩国理伦片久久电影网| 免费看成人午夜电影| 欧美xxxxb| 精品伊人久久大线蕉色首页| 国产精品久久久久久久久久久久久| 男人的天堂a在线| 免费 成 人 黄 色| 亚洲国产精品成人va在线观看| 一区二区福利| av中文字幕电影在线看| japonensisjava老师可播放| 欧美大片国产精品| 91欧美日韩| 国产91麻豆视频| 欧美精品中文字幕一区二区| 欧美刺激性大交免费视频| 亚洲成人网在线播放| 国语精品中文字幕| av资源站久久亚洲| 色www亚洲国产阿娇yao| 日韩av一区在线| 久久久久资源| 国产乱码在线| 欧美黄污视频| 欧美jizzhd欧美| 日本精品在线观看| 欧美三级三级三级爽爽爽| 群体交乱之放荡娇妻一区二区| 日韩精品卡通动漫网站| 97色在线观看免费视频| 成人免费在线电影网| 欧美一级精品片在线看| 欧洲精品一区二区三区| 91精品国产手机| 蜜桃传媒在线| 欧美xxx性| 日韩高清免费观看| 欧美性性性性性ⅹxxbbbb| 欧美日本视频一区| 国产一区二区三区日韩精品| 国产一二三区在线播放| 神马午夜在线观看| 亚洲日本在线视频观看| 天天爽夜夜爽夜夜爽| 美国av一区二区三区| 欧美色图校园春色| 日韩欧美中文字幕一区二区三区| 97在线精品| 999成人网| а√在线中文网新版地址在线| 婷婷综合久久中文字幕蜜桃三电影| 国产精品久久久久久久岛一牛影视| 亚欧洲精品在线视频免费观看| 韩国午夜理伦三级不卡影院| 99视频都是精品热在线播放| 亚洲综合日韩中文字幕v在线| 国产精品久久网| 最新中文字幕一区| 性欧美性free| 国产精品国产成人国产三级| 日日夜夜精品视频天天综合网| 久久久精品性| 国产高潮呻吟久久久| 精品午夜一区二区| 亚洲精品成人久久久998| 欧美国产视频一区| 国产精品国产| 极品一线天粉嫩虎白馒头| 伊人久久久久久久久久久久久久| 亚洲精品高清无码视频| 欧美激情一区二区久久久| 精品久久久久久中文字幕大豆网| 亚洲成人一二三| 久久天天躁狠狠躁夜夜躁| 亚洲大胆人体视频| 国内精品久久久久久| 一区在线观看免费| 精品乱子伦一区二区三区| 午夜免费福利在线| 国产av熟女一区二区三区| 日韩理伦片在线| 欧美三级特黄| 午夜啪啪免费视频| 非洲黑人最猛性xxxx交| 2019中文字幕在线视频| 久久九九热re6这里有精品| 国产剧情久久久久久| 国产精品嫩草影院com| 亚洲精品丝袜日韩| 国产狂喷白浆在线观看视频| 四虎永久在线观看免费网站网址| 欧美日韩精品免费看| 视频国产在线观看| 免费观看成人毛片| 日韩中文字幕在线视频观看| 欧美日韩伦理在线免费| 精品不卡在线视频| 精品理论电影| youjizzjizz亚洲| 丰满人妻一区二区三区53号| 综合视频在线观看| 国产美女精品写真福利视频| 亚洲欧洲制服丝袜| 粉嫩91精品久久久久久久99蜜桃| 欧美激情国产日韩精品一区18| 九色成人在线| 黄页网站在线看| 91精品动漫在线观看| 超碰超碰在线| 四虎永久在线观看| 国产精品最新| 亚洲欧美综合国产精品一区| 国产精品色综合| 成人h动漫在线| 久久精品夜夜夜夜久久| 正在播放日韩精品| 欧美日韩亚洲精品一区二区三区| 日韩中文在线电影| 欧美高清视频看片在线观看| 丝袜诱惑亚洲看片| 日韩电影网1区2区| 黄色av电影在线播放| 久久精品一二三四| 91精品国产成人www| 在线亚洲美日韩| 亚洲欧洲日本在线| 人人澡人人爽人人揉| 一区二区欧美在线观看| 国产91ⅴ在线精品免费观看| 欧美一级裸体视频| 亚洲黄色录像片| 天堂网在线.www天堂在线视频| 亚洲国产高清在线观看视频| 极品国产91在线网站| 调教视频免费在线观看| 欧美日韩一二三区| 在线欧美三区| 日韩av在线第一页| 在线中文字幕视频观看| 日本激情视频一区二区三区| 成人一区二区不卡免费| 中文字幕免费高清| 亚州国产精品| 日本久久免费| 高清国产午夜精品久久久久久| 欧美一区二区三区在线观看视频| 成人在线黄色| 亚洲精品国产日韩| 国产日韩v精品一区二区| 俄罗斯精品一区二区| 欧美日韩在线精品一区二区三区激情综| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 午夜视频在线观看一区| 国产精品九九九九九| 亚州av综合色区无码一区| 国产精品一区二区三区免费视频| 四虎国产精品成人免费入口| 全部免费毛片在线播放网站| 欧美大黑帍在线播放| h片免费观看| 欧美成人伊人久久综合网| www.日韩视频| 影音av在线| 国产一区二区三区在线观看免费| 精品高清久久| 97热在线精品视频在线观看| 成人精品999| 日产日韩在线亚洲欧美| 蜜桃av在线免费观看| 日韩专区精品| 欧美三区免费完整视频在线观看| 日韩在线精品视频| 99久久久久成人国产免费| 俺来也官网欧美久久精品| 五月开心播播网| 午夜精品久久久久久99热软件| 免费观看的黄色网址| 精品午夜久久| 激情文学综合丁香| 中文字幕在线播放一区| 精品精品国产三级a∨在线| 相泽南亚洲一区二区在线播放| 欧美aⅴ99久久黑人专区| 视频一区二区精品| www 日韩| 免费看黄色片的网站| 搡老熟女老女人一区二区| 在线看成人短视频| 99国产麻豆精品| 看全色黄大色大片免费久久久| 久久伦理中文字幕| 欧美揉bbbbb揉bbbbb| sm捆绑调教国产免费网站在线观看| 乱中年女人伦av一区二区| 黄色漫画在线免费看| 亚洲理论在线| 国产真实乱全部视频| 久久99这里只有精品| 久久综合久中文字幕青草| 一区二区视频在线看| 精东粉嫩av免费一区二区三区| 日本小视频在线免费观看| 欧美日韩视频一区二区三区| 成人国产精品一区二区网站| 999精品免费视频| 久久久久久久综合| 99porn视频在线| 美女网站免费看| 精品久久久免费视频| 亚洲综合在线观看视频| 91在线九色porny| 久久精品国产第一区二区三区最新章节| 中文字幕中文在线| 国产秒拍福利视频露脸| 国产精品3区| 日韩乱码人妻无码中文字幕| 激情综合五月网| 久久综合国产精品台湾中文娱乐网| 天堂√在线中文官网在线| 国产又黄又爽又猛免费app| 午夜影视日本亚洲欧洲精品| 999热视频在线观看| 国内自拍视频在线播放| 国产aⅴ精品一区二区三区色成熟| 亚洲精品女人久久久|