24h購物| | PChome| 登入
2007-04-16 12:56:27 | 人氣102| 回應0 | 上一篇 | 下一篇
推薦 0 收藏 0 轉貼0 訂閱站台

如何設計批次處理檔.BAT (2)

跳過空行。通過指定可選的「options」參數可以覆蓋默認的解析行為。這是一個引用字符串,它包含一個或多個關鍵字以指定不同的解析選項。關鍵字是:

關鍵字  說明 

eol=c  指定行尾註釋字符(只一個字符) 

skip=n  指定在文件的開頭跳過的行數。 

delims=xxx  指定定界符集合。這將替換空格和製表符的默認分隔符集。 

tokens=x,y,m-n  指定將令牌從每行傳遞到每個反覆的正文。這將導致分配其他變量名。m-n  格式是一個範圍,指定從  mth  到  nth  的令牌。如果在令牌  =  字符串中最後一個字符是星號,則將分配附加的變量,並在解析最後一個令牌後在行上接收剩餘的文本。 

usebackq  指定將右引號字符串作為命令執行,單引號字符串是文字字符串命令,您可以使用雙引號包括  filenameset  中的文件名。 

變量替換

此外,已經增強了  for  變量引用的替換修改程序。現在可以使用下列可選的語法(對於任何變量  I):

變量(使用修改程序)  說明 

%~I  展開刪除了周圍的任何引號  (")  的  %I 

%~fI  將  %I  展開到完全合格的路徑名 

%~dI  只將  %I  展開到驅動器號 

%~pI  只將  %I  展開到路徑 

%~nI  只將  %I  展開到文件名 

%~xI  只將  %I  展開到文件擴展名 

%~sI  展開路徑以只包含短名稱 

%~aI  將  %I  展開到文件的文件屬性 

%~tI  將  %I  展開到文件的日期/時間 

%~zI  將  %I  展開到文件大小 

%~$PATH:I  搜索  PATH  環境變量所列出的目錄,並將  %I  展開開到第一個找到結果的全部合格名稱。如果沒有定義環境變量名,或搜索後沒有找到文件,則此修改程序將擴展為空字符串。 

修改程序可以合併以獲得複雜的結果:

變量(使用合併的修改程序)  說明 

%~dpI  只將  %I  展開到驅動器號和路徑 

%~nxI  只將  %I  展開到文件名和擴展名 

%~fsI  將  %I  展開到只包含短名稱的完整路徑名 

%~dp$PATH:I  在  PATH  環境變量所列出的目錄中搜索  %I,並展開到第一個找到結果的驅動器號和路徑 

%~ftzaI  將  %I  擴展到與  dir  相似的輸出行 

注意

在上述範例中,%I  和  PATH  可被其他有效值替換。通過有效的  for  變量名終止  %~  語法。 

使用大寫變量名(例如  %I)可以使代碼更具可讀性,並且避免與不區分大小寫的修改程序混淆。 

Shift

更改批處理文件中可替換參數的位置。 

shift 

啟用命令擴展(Windows  2000  中的默認設置)後,shift  命令支持  /n  開關,該開關通知命令在第  n  個參數處開始更改,n  可以是從  0  到  8  的任何一個值。例如,

SHIFT  /2

將  %3  改為  %2,將  %4  改為  %3  等等,而  %0  和  %1  保持不變。 

篩選器命令

篩選器命令可以幫助您排序、查看和選擇部分命令輸出結果。 

通過篩選器命令傳遞信息 

篩選器命令可以劃分、重排以及提取通過的部分信息操作。Windows  2000  有三個篩選器命令: 

more  命令每次顯示一屏文件內容或命令輸出。 

find  命令在文件和命令輸出中搜索指定字符。 

sort  命令按字母順序排列文件和命令輸出。 

要將輸入從文件發送到篩選器命令,請使用小於符號  (<)。如果要篩選器命令從其他命令獲得輸入,請使用管道  (|)。 

使用  more  命令來控制屏幕顯示 

more  命令每次一屏地顯示文件的內容或命令輸出。例如,下面的  more  命令每次顯示一屏  List.txt  文件的內容: 

more  <  list.txt 

信息顯示一屏後,會出現字「More」。要繼續顯示下一屏,請按鍵盤上任意鍵。要停止命令且不查看詳細信息,請按  CTRL+C  鍵。 

如果使用產生多屏輸出的命令,more  將十分有用。例如,假設定要查看硬盤的目錄樹。如果  Windows  2000  不能將目錄在一屏內全部顯示出來,請使用帶管道號  (|)  和  more  命令的  tree  命令,如下例所示: 

tree  c:\  |  more 

tree  命令的第一屏輸出被顯示,後跟詞「More」。Windows  2000  暫停,直到用戶按鍵盤上的任意鍵為止(PAUSE  鍵除外)。 

使用  find  命令搜索文本

find  命令在一個或多個文件中搜索指定文本。Windows  2000  顯示每個包含該文本的行。find  命令可以用作篩選器命令或者標準的  Windows  2000  命令。有關將  find  用作標準的  Windows  2000  命令的信息,請單擊「相關主題」列表中的  find。 

要將  find  當作篩選器命令使用,請包含小於符號  (<)  和搜索的文件名。當輸入文件名時,請記住搜索要區分大小寫。例如,下面的命令查找文件  Trade.txt  中所有的「Pacific  Rim」字符串: 

find  "Pacific  Rim"  <  trade.txt 

要保存  find  命令的輸出而不是顯示輸出,請使用大於號  (>)  和要存儲輸出的文件名。例如,下面的命令查找文件  Trade.txt  中所有的「Pacific  Rim」字符串,並將結果保存在  Nwtrade.txt  文件中: 

find  "Pacific  Rim"  <  trade.txt  >  nwtrade.txt 

對文本文件排序 

sort  命令按字母順序排列文本文件或命令的輸出。例如,可以使用以下命令對  List.txt  文件的內容進行排序,並在屏幕上顯示結果: 

sort  <  list.txt 

在此範例中,sort  命令對  List.txt  文件的行進行排序並顯示結果,但不更改文件。要保存  sort  命令的輸出而不是顯示輸出,請在命令中包含大於號  (>)  和文件名。例如,可以使用以下命令對  List.txt  文件的行按字母順序排序,並將結果存到  Alphlist.txt  文件中: 

sort  <  list.txt  >  alphlist.txt 

要排序命令的輸出,請鍵入後面帶有管道  (|)  和  sort  命令的命令。例如,下面的命令對  find  命令的輸出結果進行排序: 

find  "Jones"  maillst.txt  |  sort 

在鍵入該命令時,Windows  2000  按字母順序列出在其中出現「Jones」的行。 

帶重定向符的合併命令 

可以將篩選器命令、其他命令和文件名合併以生成自定義命令。例如,可以使用以下命令存儲包含「LOG」字符串的文件名: 

dir  /b  |  find  "LOG"  >  loglist.txt 

Windows  2000  通過  find  過濾器命令發送  dir  命令的輸出並將包含字符串「Log」的文件名存儲在  Loglist.txt  文件中。將結果存儲為文件名列表(如,A.log、Logdat.svd  和  Mylog.bat)。 

要在相同命令中使用多個篩選器,請使用管道  (|)  分隔篩選器。例如,下面的命令搜索  C  盤上的每個目錄以查找包含「Log」字符串的文件名,並且每次顯示一屏: 

dir  c:\  /s  /b  |  find  "LOG"  |  more 

因為使用管道  (|),Windows  2000  通過  find  命令發送  dir  命令的輸出結果。find  命令只選擇包含字符串「Log」的文件名。more  命令每次一屏地顯示  find  命令選擇的文件名。 

2004-11-21  15:02

More

每次顯示一個輸出屏幕。該命令通常用於查看長文件。可以單獨使用此命令,或者使用它控制其他命令的輸出,例如  type  命令。當顯示填充可用的查看區域時將出現  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]

參數

[drive:][path]  filename

指定要顯示的文件。

command  name

指定將顯示其輸出的命令。

/c

顯示頁面前清除屏幕。

/p

擴展換頁符。

/s

將多個空白行更改為一個空白行。

/tn

將製表位更改為  n  個空格

+n

顯示由  n  指定的行開始的第一個文件。

files

指定要顯示的文件列表。用空格分隔文件名。

More  子命令

以下命令在  more  提示  (--  More  --)  下接受。

關鍵字  操作 

space  顯示下一頁。 

ENTER  顯示下一行。 

F  顯示下一個文件。 

q  退出。 

?  顯示可用命令。 

=  顯示行號。 

P  n  顯示以下  n  行。 

S  n  跳過下面  n  行。 

2004-11-21  15:02

Find

在一個文件或多個文件中搜索指定的文本字符串。 

當搜索到指定的文件後,find  將顯示出包含指定字符串的所有行。 

find  [/v]  [/c]  [/n]  "string"  [[drive:][path]filename[...]] 

參數 

/v 

顯示未包含指定字符串的所有行。 

/c 

只顯示包含指定字符串的行數。 

/n 

將文件行號置於每行開頭。 

/I 

指定搜索不區分大小寫。 

"string" 

指定要搜索的字符組。必須將  string  的文本包括在引號中。 

[drive:][path]  filename 

指定要在其中搜索指定字符串的文件的位置和名稱。 

2004-11-21  15:02

Sort

讀取輸入、排序數據並將結果寫到屏幕、文件和其他設備上。 

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]

參數 

/r

顛倒排序順序,即從  Z  到  A  排序,然後從  9  到  0  排序。

/+n

指定字符位置號  n,sort  在此處開始每次比較。例如,/+3  表示每次比較在每行的第三個字符開始。少於  n  個字符的行在其他行之前排序。默認情況下,比較在每行的第一個字符開始。

/m  kilobytes

指定用於排序的主內存數量,按千字節  (KB)  計。使用的內存最小值總是  160  KB。如果指定了內存大小,則無論有多少主內存可用,指定的確切數量(但至少  160  KB)的內存將用於排序。

如果輸入輸出均為文件,在沒有指定大小時,默認最大內存大小為可用主內存的  90%,否則為主內存的  45%。默認設置通常會產生最佳的性能。

/l  locale

替代由系統默認區域設置定義的字符排序順序;即在安裝  Windows  2000  時選擇的語言和「國家(地區)」。目前,默認區域設置唯一的備用選項就是「C」區域設置,該區域設置比自然語言排序快,根據二進制編碼對字符排序。 

/rec  characters

指定記錄或輸入文件的行中的最多字符數(默認值為  4096,最大值為  65535)。

[drive1:][path1]filename1

指定要排序的文件。如果沒有指定文件名,則對標準輸入排序。指定輸入文件比將同一文件作為標準輸入重定向速度快。

/t  [drive2:][path2]

指定保留  sort  命令工作存儲的目錄路徑,防止數據不能裝入主內存。默認為使用系統臨時目錄。

/o  [drive3:][path3]filename3

指定要存儲排序後的輸入的文件。如果沒有指定,數據將寫入標準輸出。指定輸出文件比將同一文件作為標準輸出重定向速度快

台長: Kenny
人氣(102) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 電腦設定 |
此分類下一篇:免外掛!用MSN同步播歌給對方聽
此分類上一篇:免費&商業軟體對照表

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文