學(xué)會批處理,用心學(xué)很容易!另一不錯的見解第3/3頁
更新時間:2007年03月15日 00:00:00 作者:
for /L [%% | %]variable in (start,step,end) do command [command-parameters]
集合是一系列按步長量劃分的、從頭到尾的數(shù)字。這樣,(1,1,5) 將生成序列 1 2 3 4 5,而 (5,-1,1) 將生成序列 (5 4 3 2 1)。
文件解析
for /F ["options"] [%% | %]variable in (filenameset) do command [command-parameters]
for /F ["options"] [%% | %]variable in ("literal string") do command[command-parameters]
for /F ["options"] [%% | %]variable in ('command') do command [command-parameters]
或者,如果出現(xiàn) usebackq 選項:
for /F ["options"] [%% | %]variable in (filenameset) do command [command-parameters]
for /F ["options"] [%% | %]variable in ('literal string') do command [command-parameters]
for /F ["options"] [%% | %]variable in (`command`) docommand [command-parameters]
filenameset 參數(shù)指定一個或多個文件名稱。在繼續(xù)到 filenameset 中的下一個文件之前,每個文件都會被打開、讀取和處理。
過程由讀取文件、分成獨立的文本行及然后將每行解析成零個或更多個令牌組成。然后使用設(shè)置為找到的一個或多個令牌字符串的變量值(或多個值)集合調(diào)用 for 循環(huán)體。默認(rèn)情況下,/F 傳遞每個文件每一行的第一個空白分隔符號。
跳過空行。通過指定可選的“options”參數(shù)可以覆蓋默認(rèn)的解析行為。這是一個引用字符串,它包含一個或多個關(guān)鍵字以指定不同的解析選項。關(guān)鍵字是:
關(guān)鍵字 說明
eol=c 指定行尾注釋字符(只一個字符)
skip=n 指定在文件的開頭跳過的行數(shù)。
delims=xxx 指定定界符集合。這將替換空格和制表符的默認(rèn)分隔符集。
tokens=x,y,m-n 指定將令牌從每行傳遞到每個反復(fù)的正文。這將導(dǎo)致分配其他變量名。m-n 格式是一個范圍,指定從 mth 到 nth 的令牌。如果在令牌 = 字符串中最后一個字符是星號,則將分配附加的變量,并在解析最后一個令牌后在行上接收剩余的文本。
usebackq 指定將右引號字符串作為命令執(zhí)行,單引號字符串是文字字符串命令,您可以使用雙引號包括 filenameset 中的文件名。
變量替換
此外,已經(jīng)增強了 for 變量引用的替換修改程序?,F(xiàn)在可以使用下列可選的語法(對于任何變量 I):
變量(使用修改程序) 說明
%~I 展開刪除了周圍的任何引號 (") 的 %I
%~fI 將 %I 展開到完全合格的路徑名
%~dI 只將 %I 展開到驅(qū)動器號
%~pI 只將 %I 展開到路徑
%~nI 只將 %I 展開到文件名
%~xI 只將 %I 展開到文件擴展名
%~sI 展開路徑以只包含短名稱
%~aI 將 %I 展開到文件的文件屬性
%~tI 將 %I 展開到文件的日期/時間
%~zI 將 %I 展開到文件大小
%~$PATH:I 搜索 PATH 環(huán)境變量所列出的目錄,并將 %I 展開開到第一個找到結(jié)果的全部合格名稱。如果沒有定義環(huán)境變量名,或搜索后沒有找到文件,則此修改程序?qū)U展為空字符串。
修改程序可以合并以獲得復(fù)雜的結(jié)果:
變量(使用合并的修改程序) 說明
%~dpI 只將 %I 展開到驅(qū)動器號和路徑
%~nxI 只將 %I 展開到文件名和擴展名
%~fsI 將 %I 展開到只包含短名稱的完整路徑名
%~dp$PATH:I 在 PATH 環(huán)境變量所列出的目錄中搜索 %I,并展開到第一個找到結(jié)果的驅(qū)動器號和路徑
%~ftzaI 將 %I 擴展到與 dir 相似的輸出行
注意
在上述范例中,%I 和 PATH 可被其他有效值替換。通過有效的 for 變量名終止 %~ 語法。
使用大寫變量名(例如 %I)可以使代碼更具可讀性,并且避免與不區(qū)分大小寫的修改程序混淆。
Shift
更改批處理文件中可替換參數(shù)的位置。
shift
啟用命令擴展(Windows 2000 中的默認(rèn)設(shè)置)后,shift 命令支持 /n 開關(guān),該開關(guān)通知命令在第 n 個參數(shù)處開始更改,n 可以是從 0 到 8 的任何一個值。例如,
SHIFT /2
將 %3 改為 %2,將 %4 改為 %3 等等,而 %0 和 %1 保持不變。
篩選器命令
篩選器命令可以幫助您排序、查看和選擇部分命令輸出結(jié)果。
通過篩選器命令傳遞信息
篩選器命令可以劃分、重排以及提取通過的部分信息操作。Windows 2000 有三個篩選器命令:
more 命令每次顯示一屏文件內(nèi)容或命令輸出。
find 命令在文件和命令輸出中搜索指定字符。
sort 命令按字母順序排列文件和命令輸出。
要將輸入從文件發(fā)送到篩選器命令,請使用小于符號 (<)。如果要篩選器命令從其他命令獲得輸入,請使用管道 (|)。
使用 more 命令來控制屏幕顯示
more 命令每次一屏地顯示文件的內(nèi)容或命令輸出。例如,下面的 more 命令每次顯示一屏 List.txt 文件的內(nèi)容:
more < list.txt
信息顯示一屏后,會出現(xiàn)字“More”。要繼續(xù)顯示下一屏,請按鍵盤上任意鍵。要停止命令且不查看詳細(xì)信息,請按 CTRL+C 鍵。
如果使用產(chǎn)生多屏輸出的命令,more 將十分有用。例如,假設(shè)定要查看硬盤的目錄樹。如果 Windows 2000 不能將目錄在一屏內(nèi)全部顯示出來,請使用帶管道號 (|) 和 more 命令的 tree 命令,如下例所示:
tree c:\ | more
tree 命令的第一屏輸出被顯示,后跟詞“More”。Windows 2000 暫停,直到用戶按鍵盤上的任意鍵為止(PAUSE 鍵除外)。
使用 find 命令搜索文本
find 命令在一個或多個文件中搜索指定文本。Windows 2000 顯示每個包含該文本的行。find 命令可以用作篩選器命令或者標(biāo)準(zhǔn)的 Windows 2000 命令。有關(guān)將 find 用作標(biāo)準(zhǔn)的 Windows 2000 命令的信息,請單擊“相關(guān)主題”列表中的 find。
要將 find 當(dāng)作篩選器命令使用,請包含小于符號 (<) 和搜索的文件名。當(dāng)輸入文件名時,請記住搜索要區(qū)分大小寫。例如,下面的命令查找文件 Trade.txt 中所有的“Pacific Rim”字符串:
find "Pacific Rim" < trade.txt
要保存 find 命令的輸出而不是顯示輸出,請使用大于號 (>) 和要存儲輸出的文件名。例如,下面的命令查找文件 Trade.txt 中所有的“Pacific Rim”字符串,并將結(jié)果保存在 Nwtrade.txt 文件中:
find "Pacific Rim" < trade.txt > nwtrade.txt
對文本文件排序
sort 命令按字母順序排列文本文件或命令的輸出。例如,可以使用以下命令對 List.txt 文件的內(nèi)容進(jìn)行排序,并在屏幕上顯示結(jié)果:
sort < list.txt
在此范例中,sort 命令對 List.txt 文件的行進(jìn)行排序并顯示結(jié)果,但不更改文件。要保存 sort 命令的輸出而不是顯示輸出,請在命令中包含大于號 (>) 和文件名。例如,可以使用以下命令對 List.txt 文件的行按字母順序排序,并將結(jié)果存到 Alphlist.txt 文件中:
sort < list.txt > alphlist.txt
要排序命令的輸出,請鍵入后面帶有管道 (|) 和 sort 命令的命令。例如,下面的命令對 find 命令的輸出結(jié)果進(jìn)行排序:
find "Jones" maillst.txt | sort
在鍵入該命令時,Windows 2000 按字母順序列出在其中出現(xiàn)“Jones”的行。
帶重定向符的合并命令
可以將篩選器命令、其他命令和文件名合并以生成自定義命令。例如,可以使用以下命令存儲包含“LOG”字符串的文件名:
dir /b | find "LOG" > loglist.txt
Windows 2000 通過 find 過濾器命令發(fā)送 dir 命令的輸出并將包含字符串“Log”的文件名存儲在 Loglist.txt 文件中。將結(jié)果存儲為文件名列表(如,A.log、Logdat.svd 和 Mylog.bat)。
要在相同命令中使用多個篩選器,請使用管道 (|) 分隔篩選器。例如,下面的命令搜索 C 盤上的每個目錄以查找包含“Log”字符串的文件名,并且每次顯示一屏:
dir c:\ /s /b | find "LOG" | more
因為使用管道 (|),Windows 2000 通過 find 命令發(fā)送 dir 命令的輸出結(jié)果。find 命令只選擇包含字符串“Log”的文件名。more 命令每次一屏地顯示 find 命令選擇的文件名。
More
每次顯示一個輸出屏幕。該命令通常用于查看長文件。可以單獨使用此命令,或者使用它控制其他命令的輸出,例如 type 命令。當(dāng)顯示填充可用的查看區(qū)域時將出現(xiàn) more 提示,用戶可以輸入許多命令來控制查看文件其余部分的方式。
command name | more [/c] [/p] [/s] [/tn] [+n]
more [[/c] [/p] [/s] [/tn] [+n]] < [drive:][path] filename
more [/c] [/p] [/s] [/tn] [+n] [files]
參數(shù)
[drive:][path] filename
指定要顯示的文件。
command name
指定將顯示其輸出的命令。
/c
顯示頁面前清除屏幕。
/p
擴展換頁符。
/s
將多個空白行更改為一個空白行。
/tn
將制表位更改為 n 個空格
+n
顯示由 n 指定的行開始的第一個文件。
files
指定要顯示的文件列表。用空格分隔文件名。
More 子命令
以下命令在 more 提示 (-- More --) 下接受。
關(guān)鍵字 操作
space 顯示下一頁。
ENTER 顯示下一行。
F 顯示下一個文件。
q 退出。
? 顯示可用命令。
= 顯示行號。
P n 顯示以下 n 行。
S n 跳過下面 n 行。
Find
在一個文件或多個文件中搜索指定的文本字符串。
當(dāng)搜索到指定的文件后,find 將顯示出包含指定字符串的所有行。
find [/v] [/c] [/n] "string" [[drive:][path]filename[...]]
參數(shù)
/v
顯示未包含指定字符串的所有行。
/c
只顯示包含指定字符串的行數(shù)。
/n
將文件行號置于每行開頭。
/I
指定搜索不區(qū)分大小寫。
"string"
指定要搜索的字符組。必須將 string 的文本包括在引號中。
[drive:][path] filename
指定要在其中搜索指定字符串的文件的位置和名稱。
Sort
讀取輸入、排序數(shù)據(jù)并將結(jié)果寫到屏幕、文件和其他設(shè)備上。
sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec characters] [[drive1:][path1]filename1] [/t [drive2:][path2]] [/o [drive3:][path3]filename3]
[command |] sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec characters] [[drive1:][path1]filename1] [/t [drive2:][path2]] [/o [drive3:][path3]filename3]
參數(shù)
/r
顛倒排序順序,即從 Z 到 A 排序,然后從 9 到 0 排序。
/+n
指定字符位置號 n,sort 在此處開始每次比較。例如,/+3 表示每次比較在每行的第三個字符開始。少于 n 個字符的行在其他行之前排序。默認(rèn)情況下,比較在每行的第一個字符開始。
/m kilobytes
指定用于排序的主內(nèi)存數(shù)量,按千字節(jié) (KB) 計。使用的內(nèi)存最小值總是 160 KB。如果指定了內(nèi)存大小,則無論有多少主內(nèi)存可用,指定的確切數(shù)量(但至少 160 KB)的內(nèi)存將用于排序。
如果輸入輸出均為文件,在沒有指定大小時,默認(rèn)最大內(nèi)存大小為可用主內(nèi)存的 90%,否則為主內(nèi)存的 45%。默認(rèn)設(shè)置通常會產(chǎn)生最佳的性能。
/l locale
替代由系統(tǒng)默認(rèn)區(qū)域設(shè)置定義的字符排序順序;即在安裝 Windows 2000 時選擇的語言和“國家(地區(qū))”。目前,默認(rèn)區(qū)域設(shè)置唯一的備用選項就是“C”區(qū)域設(shè)置,該區(qū)域設(shè)置比自然語言排序快,根據(jù)二進(jìn)制編碼對字符排序。
/rec characters
指定記錄或輸入文件的行中的最多字符數(shù)(默認(rèn)值為 4096,最大值為 65535)。
[drive1:][path1]filename1
指定要排序的文件。如果沒有指定文件名,則對標(biāo)準(zhǔn)輸入排序。指定輸入文件比將同一文件作為標(biāo)準(zhǔn)輸入重定向速度快。
/t [drive2:][path2]
指定保留 sort 命令工作存儲的目錄路徑,防止數(shù)據(jù)不能裝入主內(nèi)存。默認(rèn)為使用系統(tǒng)臨時目錄。
/o [drive3:][path3]filename3
指定要存儲排序后的輸入的文件。如果沒有指定,數(shù)據(jù)將寫入標(biāo)準(zhǔn)輸出。指定輸出文件比將同一文件作為標(biāo)準(zhǔn)輸出重定向速度快!
相關(guān)文章
dos命令或批處理 發(fā)生系統(tǒng)錯誤5 拒絕訪問
在dos下運行net start mysql 不能啟動mysql!提示發(fā)生系統(tǒng)錯誤 5;拒絕訪問! 這是因為權(quán)限不夠的問題。2011-03-03windows xp下沒有dos的choice命令的解決方法
dos6.0下能實現(xiàn)的choice選項,但是因為choice是外部命令,在xp中沒有choice.exe所以不能實現(xiàn)選擇菜單。解決辦法:用SET命令代替2017-03-03hh.exe 隱藏參數(shù) chm反編譯命令參數(shù)
一直都是用國外的小軟件,反編譯chm文件,沒想到用微軟自帶的其實系統(tǒng)里面就有的命令就可以實現(xiàn)了,效果也好,但就是沒有索引比較痛苦。2009-09-09在WINDOWS下dos與批處理中的命令cd /d %~dp0及其用途
這篇文章主要介紹了在WINDOWS下dos與批處理中的命令cd /d %~dp0及其用途,需要的朋友可以參考下2023-05-05