2012/10/24

*.bat相關-2

1.Format
格式化磁片以供 Windows 使用。

FORMAT volume [/FS:file-system] [/V:label] [/Q] [/A:size] [/C] [/X] [/P:passes]
FORMAT volume [/V:label] [/Q] [/F:size] [/P:passes]
FORMAT volume [/V:label] [/Q] [/T:tracks /N:sectors] [/P:passes]
FORMAT volume [/V:label] [/Q] [/P:passes]
FORMAT volume [/Q]

  volume          指定磁碟機代號 (後接冒號)、掛接點或磁碟區名稱。
  /FS:filesystem  指定檔案系統的類型 (FAT、FAT32、exFAT、NTFS 或
                  UDF)。
  /V:label        指定磁碟區標籤。
  /Q              執行快速格式化。請注意,此參數會覆寫 /P。
  /C              只限 NTFS: 根據預設值,建立在新磁碟區上的檔案
                  會被壓縮。
  /X              視需要先將磁碟區解下。
                  所有在磁碟區上開啟的控制碼都不再是正確的。
  /R:revision     只限 UDF: 將格式限制為特定的 UDF 版本
                  (1.02, 1.50, 2.00, 2.01, 2.50)。預設版本是 2.01。
  /D              限 UDF 2.50: 會重複中繼資料。
  /A:size         覆寫預設的配置單位大小。建議在一般使用時,最好
                  使用預設值。
                  NTFS 支援 512、1024、2048、4096、8192、16K、32K 和 64K。
                  FAT 支援 512、1024、2048、4096、8192、16K、32K、64K、
                  (128K、256K 供磁區容量 > 512 位元組使用)。
                  FAT32 支援 512、1024、2048、4096、8192、16K、32K、64K、
                  (128K、256K 供磁區容量 > 512 位元組使用)。
                  exFAT 支援 512、1024、2048、4096、8192、16K、32K、64K、
                  128K、256K、512K、1M、2M、4M、8M、16M、32M。

                  請注意 FAT 及 FAT32 檔案系統強制限制
                  在磁碟區的叢集數目:

                  FAT: 叢集數目 <= 65526
                  FAT32: 65526 < 叢集數目 < 4177918

                  如果格式化發現使用指定的叢集大小無法符合
                  上面的要求,格式化將會自動停止
                  執行。

                  NTFS 壓縮不支援大於 4096 的配置
                  單位。

  /F:size         指定要格式化的軟碟大小 (1.44)
  /T:tracks       為磁片各面指定磁軌數量。
  /N:sectors      指定各條磁軌的磁碟區數量。
  /P:passes       0 磁碟區的每一個磁區通過次數。 此參數
                  不能用於 /Q
 
2.如何在批處理文件中使用參數  
批處理中可以使用參數,一般從%1到%9這九個,當有多個參數時需要用shift來移動
,這種情況並不多見,我們就不考慮它了。 
 
sample1:format.bat  a
@echo off 
if \%1\==\a\ format a:  
:format  
@format a:/q/u/auotset  
@echo please insert another disk to driver A.  
@pause  
@goto format 
 
3.Compound Command
a.&
Usage:第一條命令 & 第二條命令 [& 第三條命令...]  
用這種方法可以同時執行多條命令,而不管命令是否執行成功 
Sample:  
dir z: & dir c:\Ex4rch  

b.&& 
Usage:第一條命令 && 第二條命令 [&& 第三條命令...]  
用這種方法可以同時執行多條命令,當碰到執行出錯的命令後將不執行後面的命令,如果一 
直沒有出錯則一直執行完所有命令
Sample:  
dir z: && dir c:\Ex4rch
 
c.||
Usage:第一條命令 || 第二條命令 [|| 第三條命令...]  
用這種方法可以同時執行多條命令,當碰到執行正確的命令後將不執行後面的命令, 
有出現正確的命令則一直執行完所有命令
 
4.|
Usage:第一條命令 | 第二條命令 [| 第三條命令...]  
將第一條命令的結果作為第二條命令的參數來使用,記得在unix中這種方式很常見。
sample:  
time /t D:\IP.log  
netstat -n -p tcp|find \:3389\>>D:\IP.log 
start Explorer  
TIME [/T | time]

僅鍵入 TIME 而不加上參數,可以顯示目前設定的時間,並且提示您輸入新的時
間。按 ENTER 鍵即可保持原來時間。

如果您啟用擴充命令,TIME 命令將會支援/T 參數,這個參數
會讓命令只輸出目前的時間,而不提示您輸入新時間。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
搜尋檔案中的文字字串。

  /V        顯示所有不包含指定字串的行。
  /C        只顯示包含字串的行數。
  /N        顯示每一行及它的行號。
  /I        當搜尋字串時,忽略字元的大小寫。
  /OFF[LINE] 不要略過有離線屬性設定的檔案。
  "string"  指定要尋找的文字字串。
  [drive:][path]filename
            指定要尋找的檔案。

如果沒有指定路徑,FIND 會搜尋在提示字元中所輸入的文字
或者在其他的命令中搜尋。

5.>>>
將一條命令或某個程序輸出結果重定向到特定文件中, > 與 >>的區別在
>會清除調原有文件中的內容後寫入指定文件,而>>只會追加內容到指定文件中
,而不會改動其中的內容。  
sample1:  
echo hello world>>c:\hello.txt
 
6. fc
比較兩個檔案或兩組檔案並且顯示其中的不同之處


C [/A] [/C] [/L] [/LBn] [/N] [/T] [/U] [/W] [/nnnn] [drive1:][path1]filename1
         [drive2:][path2]filename2
C /B [drive1:][path1]filename1 [drive2:][path2]filename2

  /A         針對每組不同之處只要顯示其中的第一行和最後一行。
  /B         使用二進位的內容比較。
  /C         忽略字母的大小寫。
  /L         以 ASCII 文字檔案方式來比較檔案。
  /LBn       在指定的行數中設定容許的最多連續的檔案
             不相符。
  /N         在 ASCII 方式的比較中顯示行數。
  /OFF[LINE] 不以離線屬性組略過檔案。
  /T         不要將定位字元展開為空格。
  /U         以 UNICODE 文字檔案方式來比較檔案。
  /W         將空白字元 (定位字元和空格) 壓縮後再進行比較。
  /nnnn      指定在一處不相同之後必須相同的連
             續行數。
 [drive1:][path1]filename1
             指定要比較的第一個檔案或第一組檔案。
 [drive2:][path2]filename2
             指定要比較的第二個檔案或第二組檔案。
 
7.findstr
在檔案中搜尋字串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [strings] [[drive:][path]filename[ ...]]

  /B        如果是在行的開端,則符合類型。
  /E        如果是在行的尾端,則符合類型。
  /L        逐字使用搜尋字串。
  /R        使用搜尋字串為一般表示式。
  /S        在現存目錄及所有的子目錄中
            搜尋符合的檔案。
  /I        指定搜尋不區分大小寫。
  /X        列印完全符合的行數。
  /V        只列印不含相符字串的行數。
  /N        列印每一行符合的行數前的行編號。
  /M        只列印包含相符字串的檔案的檔案名稱。
  /O        列印每一個相符行之前的字元位移。
  /P        略過沒有可列印字元的檔案。
  /F:file   從指定的檔案讀取檔案清單 (/ 代表主控台)。
  /C:string 使用特定的字串作為逐字搜尋的字串。
  /G:file   從指定的檔案取得搜尋字串 (/ 代表主控台)。
  /D:dir    搜尋以分號隔開的目錄清單。
  strings   要搜尋的文字。
  [drive:][path]filename
            指定要搜尋的一個或多個檔案。

除非引數的字首有 /C,否則請以空格將多重搜尋
字串分開。例如,'FINDSTR "hello there" x.y'
將會在檔案 x.y 中搜尋 "hello",或 "there"。
'FINDSTR /C:"hello there" x.y' 將會在檔案
x.y 中搜尋 "hello there"。

常見表示快速對照表:
  .        萬用字元: 任何字元
  *        重複: 零或之前字元或類別發生數次
  ^        行的位置: 行的開頭
  $        行的位置: 行的結尾
  [class]  字元類別: 組的任何一個字元
  [^class] 顛倒的類別: 不成組的任何一個字元
  [x-y]    範圍: 在特定範圍內的任何字元
  \x       跳開: metacharacter x 的字面使用方法
  \  xyz\>    字的位置: 字的結尾

有關 FINDSTR 一般表示式的資訊,請參閱線上
命令參照。

沒有留言: