當前位置:首頁 > 站長工具 > CMD命令大區
CMD命令大區

CALL

 
從批處理程序調用另一個批處理程序。

CALL [drive:][path]filename [batch-parameters]

  batch-parameters   指定批處理程序所需的命令行信息。

如果命令擴展名被啟用,CALL 會如下改變:

CALL 命令現在將卷標當作 CALL 的目標接受。語法是:

    CALL:label arguments

一個新的批文件上下文由指定的參數所創建,控制在卷標被指定
后傳遞到語句。您必須通過達到批腳本文件末兩次來 "exit" 兩次。
第一次讀到文件末時,控制會回到 CALL 語句的緊后面。第二次
會退出批腳本。鍵入 GOTO /?,參看 GOTO  : EOF  擴展名的描述,
此描述允許您從一個批腳本返回。

另外,批腳本文本參數參照(%0、%1、等等)已如下改變:


     批腳本里的 %* 指出所有的參數(如 %1 %2 %3 %4 %5 ...)

     批參數(%n)的替代已被增強。您可以使用以下語法:

         %~1         - 刪除引號("),擴充 %1
         %~f1        - 將 %1 擴充到一個完全合格的路徑名
         %~d1        - 僅將 %1 擴充到一個驅動器號
         %~p1        - 僅將 %1 擴充到一個路徑
         %~n1        - 僅將 %1 擴充到一個文件名
         %~x1        - 僅將 %1 擴充到一個文件擴展名
         %~s1        - 擴充的路徑指含有短名
         %~a1        - 將 %1 擴充到文件屬性
         %~t1        - 將 %1 擴充到文件的日期/時間
         %~z1        - 將 %1 擴充到文件的大小
         %~$PATH : 1 - 查找列在 PATH 環境變量的目錄,并將 %1
                       擴充到找到的第一個完全合格的名稱。如果環境
                       變量名未被定義,或者沒有找到文件,此組合鍵會
                       擴充到空字符串

    可以組合修定符來取得多重結果:

        %~dp1       - 只將 %1 擴展到驅動器號和路徑
        %~nx1       - 只將 %1 擴展到文件名和擴展名
        %~dp$PATH:1 - 在列在 PATH 環境變量中的目錄里查找 %1,
                       并擴展到找到的第一個文件的驅動器號和路徑。
        %~ftza1     - 將 %1 擴展到類似 DIR 的輸出行。

    在上面的例子中,%1 和 PATH 可以被其他有效數值替換。
    %~ 語法被一個有效參數號碼終止。%~ 修定符不能跟 %*
    使用

CMD

 
啟動 Windows XP 命令解釋程序一個新的實例

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] string]

/C      執行字符串指定的命令然后終斷
/K      執行字符串指定的命令但保留
/S      在 /C 或 /K 后修改字符串處理(見下)
/Q      關閉回應
/D      從注冊表中停用執行 AutoRun 命令(見下)
/A      使向內部管道或文件命令的輸出成為 ANSI
/U      使向內部管道或文件命令的輸出成為 Unicode
/T:fg   設置前景/背景顏色(詳細信息,請見 COLOR /?)
/E:ON   啟用命令擴展(見下)
/E:OFF  停用命令擴展(見下)
/F:ON   啟用文件和目錄名稱完成字符 (見下)
/F:OFF  停用文件和目錄名稱完成字符(見下)
/V:ON   將 ! 作為定界符啟動延緩環境變量擴展。如: /V:ON 會
        允許 !var! 在執行時允許 !var! 擴展變量 var。var 語法
        在輸入時擴展變量,這與在一個 FOR 循環內不同。
/V:OFF  停用延緩的環境擴展。

請注意,如果字符串有引號,可以接受用命令分隔符 '&&' 隔開
的多個命令。并且,由于兼容原因,/X 與 /E:ON 相同,/Y 與
/E:OFF 相同,并且 /R 與 /C 相同。忽略任何其他命令行開關。

如果指定了 /C 或 /K,命令行開關后的命令行其余部分將作為命令行處
理;在這種情況下,會使用下列邏輯處理引號字符("):

    1.   如果符合下列所有條件,那么在命令行上的引號字符將被
        保留:

        - 不帶 /S 命令行開關
        - 整整兩個引號字符
        - 在兩個引號字符之間沒有特殊字符,特殊字符為下列中的
          一個: <>()@^|
        - 在兩個引號字符之間有至少一個空白字符
        - 在兩個引號字符之間有至少一個可執行文件的名稱。

    2.  否則,老辦法是,看第一個字符是否是一個引號字符,如果
        是,舍去開頭的字符并刪除命令行上 的最后一個引號字符,
        保留最后一個引號字符之后的文字。

如果 /D 未在命令行上被指定,當 CMD.EXE 開始時,它會尋找
以下 REG_SZ/REG_EXPAND_SZ 注冊表變量。如果其中一個或
兩個都存在,這兩個變量會先被執行。

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

        和/或

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

命令擴展是按默認值啟用的。您也可以使用 /E:OFF,為某一
特定調用而停用擴展。您可以在機器上和/或用戶登錄會話上
啟用或停用 CMD.EXE 所有調用的擴展,這要通過設置使用
REGEDT32.EXE 的注冊表中的一個或兩個 REG_DWORD 值:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

        和/或

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

到 0x1 或 0x0。用戶特定設置比機器設置有優先權。命令行
開關比注冊表設置有優先權。

命令行擴展包括對下列命令所做的更改和/或添加:

    DEL 或 ERASE
    COLOR
    CD 或 CHDIR
    MD 或 MKDIR
    PROMPT
    PUSHD
    POPD
    SET
    SETLOCAL
    ENDLOCAL
    IF
    FOR
    CALL
    SHIFT
    GOTO
    START (同時包括對外部命令調用所做的更改)
    ASSOC
    FTYPE

有關詳細信息,請鍵入 HELP 命令名。

延遲變量環境擴展不按默認值啟用。您可以用/V:ON 或 /V:OFF
命令行開關,為 CMD.EXE 的某個調用而啟用或停用延遲環境變量擴充。
您可以在機器上和/或用戶登錄會話上啟用或停用 CMD.EXE 所有
調用的完成,這要通過設置使用 REGEDT32.EXE 的注冊表中的
一個或兩個 REG_DWORD 值:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

        和/或

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion

到 0x1 或 0x0。用戶特定設置比機器設置有優先權。命令行開關
比注冊表設置有優先權。

如果延遲環境變量擴充被啟用,驚嘆號字符可在執行時間,被用來
代替一個環境變量的數值。

文件和目錄名完成不按默認值啟用。您可以用 /F:ON 或 /F:OFF
命令行開關,為 CMD.EXE 的某個調用而啟用或停用文件名完成。 您可以
在機器上和/或用戶登錄會話上啟用或停用 CMD.EXE 所有調用的
完成,這要通過設置使用 REGEDT32.EXE 的注冊表中的一個或兩個
REG_DWORD 值:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar

        和/或

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar

由一個控制字符的十六進制值作為一個特定參數(例如,0x4 是
Ctrl-D,0x6 是 Ctrl-F)。 用戶特定設置優先于機器設置。命令行開關
優先于注冊表設置。

如果完成是用 /F:ON 命令行開關啟用的,兩個要使用的控制符是: 目錄名
字完成用 Ctrl-D, 文件名完成用 Ctrl-F。 要停用注冊表中的某個
字符,請用空格(0x20)的數值,因為此字符不是控制字符。

如果鍵入兩個控制字符中的一個,完成會被調用。完成功能將
路徑字符串帶到光標的左邊,如果沒有通配符,將通配符附加
到左邊,并建立相符的路徑列表。然后,顯示第一個相符的路
徑。如果沒有相符的路徑,則發出嘟嘟聲,不影響顯示。之后,
重復按同一個控制字符會循環顯示相符路徑的列表。將 Shift 鍵
跟控制字符同時按下,會倒著顯示列表。如果對該行進行了任
何編輯,并再次按下控制字符,保存的相符路徑的列表會被丟棄,
新的會被生成。如果在文件和目錄名完成之間切換,會發生
同樣現象。兩個控制字符之間的唯一區別是文件完成字符符合
文件和目錄名,而目錄完成字符只符合目錄名。如果文件完成
被用于內置式目錄命令(CD、MD 或 RD),就會使用目錄完成。

將引號將相符路徑括起來,完成代碼可以正確處理含有空格
或其他特殊字符的文件名。同時,如果備份,然后從行內調用
文件完成,完成被調用是位于光標右方的文字會被丟棄。

需要引號的特殊字符是:
     
     &()[]{}^=;!'+,`~

DIR

 
顯示目錄中的文件和子目錄列表。

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

  [drive:][path][filename]
              指定要列出的驅動器、目錄和/或文件。

  /A          顯示具有指定屬性的文件。
  attributes   D  目錄                R  只讀文件
               H  隱藏文件            A  準備存檔的文件
               S  系統文件            -  表示“否”的前綴
  /B          使用空格式(沒有標題信息或摘要)。
  /C          在文件大小中顯示千位數分隔符。這是默認值。用 /-C 來
              停用分隔符顯示。
  /D          跟寬式相同,但文件是按欄分類列出的。
  /L          用小寫。
  /N          新的長列表格式,其中文件名在最右邊。
  /O          用分類順序列出文件。
  sortorder    N  按名稱(字母順序)     S  按大小(從小到大)
               E  按擴展名(字母順序)   D  按日期/時間(從先到后)
               G  組目錄優先           -  顛倒順序的前綴
  /P          在每個信息屏幕后暫停。
  /Q          顯示文件所有者。
  /S          顯示指定目錄和所有子目錄中的文件。
  /T          控制顯示或用來分類的時間字符域。
  timefield   C  創建時間
              A  上次訪問時間
              W  上次寫入的時間
  /W          用寬列表格式。
  /X          顯示為非 8dot3 文件名產生的短名稱。格式是 /N 的格式,
              短名稱插在長名稱前面。如果沒有短名稱,在其位置則
              顯示空白。
  /4          用四位數字顯示年

可以在 DIRCMD 環境變量中預先設定開關。通過添加前綴 - (破折號)
來替代預先設定的開關。例如,/-W。

FINDSTR

 
在文件中尋找字符串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B        在一行的開始配對模式。
  /E        在一行的結尾配對模式。
  /L        按字使用搜索字符串。
  /R        將搜索字符串作為一般表達式使用。
  /S        在當前目錄和所有子目錄中搜索
              匹配文件。
  /I         指定搜索不分大小寫。
  /X        打印完全匹配的行。
  /V        只打印不包含匹配的行。
  /N        在匹配的每行前打印行數。
  /M        如果文件含有匹配項,只打印其文件名。
  /O        在每個匹配行前打印字符偏移量。
  /P        忽略有不可打印字符的文件。  
  /OFF[LINE] 不跳過帶有脫機屬性集的文件。
  /A:attr   指定有十六進位數字的顏色屬性。請見 "color /?"
  /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       Escape: 元字符 x 的文字用法
  \    字位置: 字的結束

有關 FINDSTR 常見表達法的詳細情況,請見聯機命令參考。

FOR

 
對一組文件中的每一個文件執行某個特定命令。

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

  %variable  指定一個單一字母可替換的參數。
  (set)      指定一個或一組文件。可以使用通配符。
  command    指定對每個文件執行的命令。
  command-parameters
             為特定命令指定參數或命令行開關。

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

如果命令擴展名被啟用,下列額外的 FOR 命令格式會受到
支持:

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

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

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

    檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的
    FOR 語句。如果在 /R 后沒有指定目錄,則使用當前
    目錄。如果集僅為一個單點(.)字符,則枚舉該目錄樹。

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

    該集表示以增量形式從開始到結束的一個數字序列。
    因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生
    序列 (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 選項:

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 為一個或多個文件名。繼續到 filenameset 中的
   下一個文件之前,每份文件都已被打開、讀取并經過處理。
    處理包括讀取文件,將其分成一行行的文字,然后將每行
    解析成零或更多的符號。然后用已找到的符號字符串變量值
    調用 For 循環。以默認方式,/F 通過每個文件的每一行中分開
    的第一個空白符號。跳過空白行。您可通過指定可選 "options" 
    參數替代默認解析操作。這個帶引號的字符串包括一個或多個
    指定不同解析選項的關鍵字。這些關鍵字為:

        eol=c           - 指一個行注釋字符的結尾(就一個)
        skip=n          - 指在文件開始時忽略的行數。
        delims=xxx      - 指分隔符集。這個替換了空格和跳格鍵的
                          默認分隔符集。
        tokens=x,y,m-n  - 指每行的哪一個符號被傳遞到每個迭代
                          的 for 本身。這會導致額外變量名稱的分配。m-n
                          格式為一個范圍。通過 nth 符號指定 mth。如果
                          符號字符串中的最后一個字符星號,
                          那么額外的變量將在最后一個符號解析之后
                          分配并接受行的保留文本。
        usebackq        - 指定新語法已在下類情況中使用:                    
                          在作為命令執行一個后引號的字符串并且一個單
                          引號字符為文字字符串命令并允許在 filenameset
                          中使用雙引號擴起文件名稱。

    某些范例可能有助:

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

    會分析 myfile.txt 中的每一行,忽略以分號打頭的那些行,將
    每行中的第二個和第三個符號傳遞給 for 程序體;用逗號和/或
    空格定界符號。請注意,這個 for 程序體的語句引用 %i 來
    取得第二個符號,引用 %j 來取得第三個符號,引用 %k
    來取得第三個符號后的所有剩余符號。對于帶有空格的文件
    名,您需要用雙引號將文件名括起來。為了用這種方式來使
    用雙引號,您還需要使用 usebackq 選項,否則,雙引號會
    被理解成是用作定義某個要分析的字符串的。

    %i 專門在 for 語句中得到說明,%j 和 %k 是通過
    tokens= 選項專門得到說明的。您可以通過 tokens= 一行
    指定最多 26 個符號,只要不試圖說明一個高于字母 'z' 或
    'Z' 的變量。請記住,FOR 變量是單一字母、分大小寫和全局的;而且,
    同時不能有 52 個以上都在使用中。

    您還可以在相鄰字符串上使用 FOR /F 分析邏輯;方法是,
    用單引號將括號之間的 filenameset 括起來。這樣,該字符
    串會被當作一個文件中的一個單一輸入行。

    最后,您可以用 FOR /F 命令來分析命令的輸出。方法是,將
    括號之間的 filenameset 變成一個反括字符串。該字符串會
    被當作命令行,傳遞到一個子 CMD.EXE,其輸出會被抓進
    內存,并被當作文件分析。因此,以下例子:

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

    會枚舉當前環境中的環境變量名稱。

另外,FOR 變量參照的替換已被增強。您現在可以使用下列
選項語法:

     ~I         - 刪除任何引號("),擴充 %I
     %~fI        - 將 %I 擴充到一個完全合格的路徑名
     %~dI        - 僅將 %I 擴充到一個驅動器號
     %~pI        - 僅將 %I 擴充到一個路徑
     %~nI        - 僅將 %I 擴充到一個文件名
     %~xI        - 僅將 %I 擴充到一個文件擴展名
     %~sI        - 擴充的路徑只含有短名
     %~aI        - 將 %I 擴充到文件的文件屬性
     %~tI        - 將 %I 擴充到文件的日期/時間
     %~zI        - 將 %I 擴充到文件的大小
     %~$PATH:I   - 查找列在路徑環境變量的目錄,并將 %I 擴充
                   到找到的第一個完全合格的名稱。如果環境變量名
                   未被定義,或者沒有找到文件,此組合鍵會擴充到
                   空字符串

可以組合修飾符來得到多重結果:

     %~dpI       - 僅將 %I 擴充到一個驅動器號和路徑
     %~nxI       - 僅將 %I 擴充到一個文件名和擴展名
     %~fsI       - 僅將 %I 擴充到一個帶有短名的完整路徑名
     %~dp$PATH:i - 查找列在路徑環境變量的目錄,并將 %I 擴充
                   到找到的第一個驅動器號和路徑。 
     %~ftzaI     - 將 %I 擴充到類似輸出線路的 DIR

在以上例子中,%I 和 PATH 可用其他有效數值代替。%~ 語法
用一個有效的 FOR 變量名終止。選取類似 %I 的大寫變量名
比較易讀,而且避免與不分大小寫的組合鍵混淆。

IF

 
執行批處理程序中的條件處理。

IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command

  NOT               指定只有條件為 false 的情況下, Windows XP 才
                    應該執行該命令。

  ERRORLEVEL number 如果最后運行的程序返回一個等于或大于
                    指定數字的退出編碼,指定條件為 true。

  string1==string2  如果指定的文字字符串匹配,指定條件為 true。

  EXIST filename    如果指定的文件名存在,指定條件為 true。

  command           如果符合條件,指定要執行的命令。如果指定的
                     條件為 FALSE,命令后可跟一個執行 ELSE 
                      關鍵字后的命令的 ELSE 命令。

ELSE 子句必須在 IF 之后出現在同一行上。例如:

    IF EXIST filename. (
        del filename.
    ) ELSE (
        echo filename. missing.
    )

因為 del 命令需要用一個新行終止,以下子句不會有效:

IF EXIST filename. del filename. ELSE echo filename. missing

由于 ELSE 命令必須與 IF 命令的尾端在同一行上,以下子句也
不會有效:

    IF EXIST filename. del filename.
    ELSE echo filename. missing

如果都放在同一行上,以下子句有效:

    IF EXIST filename. (del filename.) ELSE echo filename. missing

如果命令擴展名被啟用,IF 會如下改變:

    IF [/I] string1 compare-op string2 command
    IF CMDEXTVERSION number command
    IF DEFINED variable command

其中,比較運算符可以是:

    EQU - 等于
    NEQ - 不等于
    LSS - 小于
    LEQ - 小于或等于
    GTR - 大于
    GEQ - 大于或等于

及 /I 開關;如果該開關被指定,則說明要進行的字符串比較不分
大小寫。/I 開關可以用于 IF 的 string1==string2 的形式上。這些
比較都是通用的;原因是,如果 string1 和 string2 都是由數字
組成的,字符串會被轉換成數字,進行數字比較。

CMDEXTVERSION 條件的作用跟 ERRORLEVEL 的一樣,除了它
是在跟與命令擴展名有關聯的內部版本號比較。第一個版本
是 1。每次對命令擴展名有相當大的增強時,版本號會增加一個。
命令擴展名被停用時,CMDEXTVERSION 條件不是真的。

如果已定義環境變量,DEFINED 條件的作用跟 EXISTS 的一樣,
除了它取得一個環境變量,返回的結果是 true。

如果沒有名為 ERRORLEVEL 的環境變量,%ERRORLEVEL%
會擴充為 ERROLEVEL 當前數值的字符串表達式;否則,您會得到
其數值。運行程序后,以下語句說明 ERRORLEVEL 的用法:

    goto answer%ERRORLEVEL%
    :answer0
    echo Program had return code 0
    :answer1
    echo Program had return code 1

您也可以使用以上的數字比較:

    IF %ERRORLEVEL% LEQ 1 goto okay

如果沒有名為 CMDCMDLINE 的環境變量,%CMDCMDLINE%
將在 CMD.EXE 進行任何處理前擴充為傳遞給 CMD.EXE 的原始
命令行;否則,您會得到其數值。

如果沒有名為 CMDEXTVERSION 的環境變量,
%CMDEXTVERSION% 會擴充為 CMDEXTVERSION 當前數值的
字串符表達式;否則,您會得到其數值。

SET

 
顯示、設置或刪除 cmd.exe 環境變量。

SET [variable=[string]]

  variable  指定環境變量名。
  string    指定要指派給變量的一系列字符串。

要顯示當前環境變量,鍵入不帶參數的 SET。

如果命令擴展名被啟用,SET 會如下改變:

可僅用一個變量激活 SET 命令,等號或值不顯示所有前綴匹配
SET 命令已使用的名稱的所有變量的值。例如:

    SET P

會顯示所有以字母 P 打頭的變量

如果在當前環境中找不到該變量名稱,SET 命令將把 ERRORLEVEL
設置成 1。

SET 命令不允許變量名含有等號。

在 SET 命令中添加了兩個新命令行開關:

    SET /A expression
    SET /P variable=[promptString]

/A 命令行開關指定等號右邊的字符串為被評估的數字表達式。該表達式
評估器很簡單并以遞減的優先權順序支持下列操作:

    ()                  - 分組
    ! ~ -               - 一元運算符
    * / %               - 算數運算符
    + -                 - 算數運算符
    << >>               - 邏輯移位
                       - 按位“與”
    ^                   - 按位“異”
    |                   - 按位“或”
    = *= /= %= += -=    - 賦值
      &= ^= |= <<= >>=
    ,                   - 表達式分隔符

如果您使用任何邏輯或取余操作符, 您需要將表達式字符串用
引號擴起來。在表達式中的任何非數字字符串鍵作為環境變量
名稱,這些環境變量名稱的值已在使用前轉換成數字。如果指定
了一個環境變量名稱,但未在當前環境中定義,那么值將被定為
零。這使您可以使用環境變量值做計算而不用鍵入那些 % 符號
來得到它們的值。如果 SET /A 在命令腳本外的命令行執行的,
那么它顯示該表達式的最后值。該分配的操作符在分配的操作符
左邊需要一個環境變量名稱。除十六進制有 0x 前綴, 八進制
有 0 前綴的,數字值為十進位數字。因此, 0x12 與 18 和 022 
相同。請注意八進制公式可能很容易搞混: 08 和 09 是無效的數字,
因為 8 和 9 不是有效的八進制位數。

/P 命令行開關允許將變量數值設成用戶輸入的一行輸入。讀取輸入
行之前,顯示指定的 promptString。promptString 可以是空的。

環境變量替換已如下增強:

    %PATH:str1=str2%

會擴展 PATH 環境變量,用 "str2" 代替擴展結果中的每個 "str1"。
要有效地從擴展結果中刪除所有的 "str1","str2" 可以是空的。
"str1" 可以以星號打頭;在這種情況下,"str1" 會從擴展結果的
開始到 str1 剩余部分第一次出現的地方,都一直保持相配。

也可以為擴展名指定子字符串。

    %PATH:~10,5%

會擴展 PATH 環境變量,然后只使用在擴展結果中從第 11 個(偏
移量 10)字符開始的五個字符。如果沒有指定長度,則采用默認
值,即變量數值的余數。如果兩個數字(偏移量和長度)都是負數,
使用的數字則是環境變量數值長度加上指定的偏移量或長度。

    %PATH:~-10%

會提取 PATH 變量的最后十個字符。

    %PATH:~0,-2%

會提取 PATH 變量的所有字符,除了最后兩個。

終于添加了延遲環境變量擴充的支持。該支持總是按默認值被
停用,但也可以通過 CMD.EXE 的 /V 命令行開關而被啟用/停用。
請參閱 CMD /?

考慮到讀取一行文本時所遇到的目前擴充的限制時,延遲環境
變量擴充是很有用的,而不是執行的時候。以下例子說明直接
變量擴充的問題:

    set VAR=before
    if "%VAR%" == "before" (
        set VAR=after
        if "%VAR%" == "after" @echo If you see this, it worked
    )

不會顯示消息,因為在讀到第一個 IF 語句時,BOTH IF 語句中
的 %VAR% 會被代替;原因是: 它包含 IF 的文體,IF 是一個
復合語句。所以,復合語句中的 IF 實際上是在比較 "before" 和
"after",這兩者永遠不會相等。同樣,以下這個例子也不會達到
預期效果:

    set LIST=
    for %i in (*) do set LIST=%LIST% %i
    echo %LIST%

原因是,它不會在目前的目錄中建立一個文件列表,而只是將
LIST 變量設成找到的最后一個文件。這也是因為 %LIST% 在
FOR 語句被讀取時,只被擴充了一次;而且,那時的 LIST 變量
是空的。因此,我們真正執行的 FOR 循環是:

    for %i in (*) do set LIST= %i

這個循環繼續將 LIST 設成找到的最后一個文件。

延遲環境變量擴充允許您使用一個不同的字符(驚嘆號)在執行
時間擴充環境變量。如果延遲的變量擴充被啟用,可以將上面
例子寫成以下所示,以達到預期效果:

    set VAR=before
    if "%VAR%" == "before" (
        set VAR=after
        if "!VAR!" == "after" @echo If you see this, it worked
    )

    set LIST=
    for %i in (*) do set LIST=!LIST! %i
    echo %LIST%

如果命令擴展名被啟用,有幾個動態環境變量可以被擴展,但
不會出現在 SET 顯示的變量列表中。每次變量數值被擴展時,
這些變量數值都會被動態計算。如果用戶用這些名稱中任何
一個定義變量,那個定義會替代下面描述的動態定義:

%CD% - 擴展到當前目錄字符串。

%DATE% - 用跟 DATE 命令同樣的格式擴展到當前日期。

%TIME% - 用跟 TIME 命令同樣的格式擴展到當前時間。

%RANDOM% - 擴展到 0 和 32767 之間的任意十進制數字。

%ERRORLEVEL% - 擴展到當前 ERRORLEVEL 數值。

%CMDEXTVERSION% - 擴展到當前命令處理器擴展名版本號。

%CMDCMDLINE% - 擴展到調用命令處理器的原始命令行。

SORT

 
SORT [/R] [/+n] [/M kilobytes] [/L locale] [/REC recordbytes]

  [[drive1:][path1]filename1] [/T [drive2:][path2]]

  [/O [drive3:][path3]filename3]

  /+n                         指定開始每個比較的字符號碼 n。/+3 說明每個

                              比較應從每行的第三個字符開始。少于 n 個字符

                              的行排在其他行之前。按默認值,從每行的第一

                              個字符開始比較。

  /L[OCALE] locale            用指定的區域設置替代系統默認區域設置。

                              ""C"" 區域設置產生最快的排序順序并且是當前的

                              唯一其他選擇。排序總是不分大小寫的。

  /M[EMORY] kilobytes         指定用于排序的主內存量,單位為 KB。

                              最小內存量總是 160 KB。如果指定內存大小,

                              無論主內存的可用量是多少,指定的內存量

                              會全部用于排序。



                              要取得最佳性能,通常不指定內存大小。按默認

                              值,如果達到默認最大內存值,排序會一次完成

                              (非臨時文件);否則,排序會分兩次完成(沒有

                              完全排序的數據存儲在臨時文件中);用于排序

                              和合并的內存量相等。如果輸入和輸出都是

                              文件, 默認最大內存量為可用主內存的 90%;

                              否則,為主內存的 45%。

  /REC[ORD_MAXIMUM] characters 指定記錄中的最大字符數量

                               (默認值為 4096,最大值為 65535)。

  /R[EVERSE]                  顛倒排序順序,即,從 Z 到 A,再從 9 到 0。

  [drive1:][path1]filename1   指定要排序的文件。如果沒有指定,

                              則排序標準輸入。指定輸入文件比將同一個文件

                              重定向為標準輸入快。

  /T[EMPORARY]

    [drive2:][path2]          指定保留排序工作存儲的目錄路徑,以防

                              主內存無法容納數據。默認值是使用系統臨時

                              目錄。

  /O[UTPUT]

    [drive3:][path3]filename3 指定在哪個文件中儲存經過排序的輸入。

                              如果沒有指定,數據會被寫入標準輸出。指定

                              輸出文件比將標準輸出重定向到同一個文件快。


START

 
啟動另一個窗口運行指定的程序或命令。

START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] 
      [/WAIT] [/B] [command/program]
      [parameters]

    "title"     在窗口標題欄中顯示的標題。
    path        起始目錄
    B           在不創建新窗口的情況下開始應用程序。 除非
                啟動 ^C 處理,否則該應用程序會忽略 ^C 處理;
                 ^Break 是唯一可以中斷該應用程序的方式
    I           新環境是傳遞給 cmd.exe 的原始環境,
                而不是當前環境
    MIN         開始時窗口最小化
    MAX         開始時窗口最大化
    SEPARATE    在分開的空間內開始 16 位 Windows 程序
    SHARED      在分共享的空間內開始 16 位 Windows 程序
    LOW         在 IDLE 優先級類別開始應用程序 
    NORMAL      在 NORMAL 優先級類別開始應用程序
    HIGH        在 HIGH 優先級類別開始應用程序
    REALTIME    在 REALTIME 優先級類別開始應用程序
    ABOVENORMAL 在 ABOVENORMAL 優先級類別開始應用程序
    BELOWNORMAL 在 BELOWNORMAL 優先級類別開始應用程序
    WAIT        啟動應用程序并等候它結束
    command/program
                如果是內部 cmd 命令或批文件,那么該命令處理器是
                用 /K 命令行開關運行 cmd.exe 的。這表示該窗口在命令運行
                后仍然存在。

                如果不是內部 cmd 命令或批文件,則是一個程序,并
                作為窗口應用程序或控制臺應用程序運行。

    parameters  這些為傳送到命令/程序的參數


如果命令擴展名被啟用,通過命令行或 START 命令的外部命令
調用會如下改變:

將文件名作為命令鍵入,非可執行文件    可以通過文件關聯調用。
    (例如, WORD.DOC 會調用跟 .DOC 文件擴展名關聯的應用程序)。
    關于如何從命令腳本內部創建這些關聯,請參閱 ASSOC 和
     FTYPE 命令。

執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用
    程序終止就返回命令提示。如果在命令腳本內執行,該新行為
    則不會發生。

如果執行的命令行的第一個符號是不帶擴展名或路徑修飾符的
    字符串 "CMD","CMD" 會被COMSPEC 變量的數值所替換。這
    防止從當前目錄抓出 CMD.EXE。

如果執行的命令行的第一個符號沒有擴展名,CMD.EXE 會使用
    PATHEXT 環境變量的數值來決定要以什么順序尋找哪些擴展
    名。PATHEXT 變量的默認值是:

        .COM;.EXE;.BAT;.CMD

    請注意,該語法跟 PATH 變量的一樣,分號隔開不同的元素。

查找可執行文件時,如果沒有相配的擴展名,看一看該名稱是否
與目錄名相配。如果確實如此,START 會在那個路徑上調用 
Explorer。如果從命令行執行,則等同于對那個路徑作 CD /D。

XCOPY

 
復制文件和目錄樹。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
                           [/EXCLUDE:file1[+file2][+file3]...]

  source       指定要復制的文件。
  destination  指定新文件的位置和/或名稱。
  /A           只復制有存檔屬性集的文件,
               但不改變屬性。
  /M           只復制有存檔屬性集的文件,
               并關閉存檔屬性。
  /D:m-d-y     復制在指定日期或指定日期以后更改的文件。
               如果沒有提供日期,只復制那些源時間
               比目標時間新的文件。
  /EXCLUDE:file1[+file2][+file3]...
               指定含有字符串的文件列表。每一個字符串
               必須在文件的單獨行中。如果有任何
               字符串與要被復制的文件的絕對路徑
               相符,那個文件將不會得到復制。
               例如,指定如 \obj\ 或 .obj 的字符串會排除
               目錄 obj 下面的所有文件或帶有
               .obj 擴展名的文件。
  /P           創建每個目標文件前提示。
  /S           復制目錄和子目錄,除了空的。
  /E           復制目錄和子目錄,包括空的。
               與 /S /E 相同。可以用來修改 /T。
  /V           驗證每個新文件。
  /W           提示您在復制前按鍵。
  /C           即使有錯誤,也繼續復制。
  /I           如果目標不存在,又在復制一個以上的文件,
               則假定目標一定是一個目錄。
  /Q           復制時不顯示文件名。
  /F           復制時顯示完整的源和目標文件名。
  /L           顯示要復制的文件。
  /G           允許將沒有經過加密的文件復制到
               不支持加密的目標。
  /H           也復制隱藏和系統文件。
  /R           覆蓋只讀文件。
  /T           創建目錄結構,但不復制文件。
               不包括空目錄或子目錄。/T /E 包括
               空目錄和子目錄。
  /U           只復制已經存在于目標中的文件。
  /K           復制屬性。一般的 Xcopy 會重置只讀屬性。
  /N           用生成的短名復制。
  /O           復制文件所有權和 ACL 信息。
  /X           復制文件審核設置(隱含 /O)。
  /Y           復制文件審核設置(隱含 /O)。
               現存目標文件。
  /-Y          導致提示以確認改寫一個
               現存目標文件。
  /Z            用重新啟動模式復制網絡文件。

命令行開關 /Y 可以預先在 COPYCMD 環境變量中設置。
這可能被命令行上的 /-Y 改寫。
[關閉]
使用幫助

CMD命令大全使用幫助

歡迎使用我愛IT技術網提供的CMD命令大全,提供幾乎所有的CMD命令,在平時使用電腦的過程中,如果要使用到CMD命令,只要將本功能收藏,那輕松查找即可找到對應的命令,尤其是對從事電腦行業的朋友們那非常有用。

分享本站:

我愛IT技術網-給您最實用、最準確、最權威的查詢工具。請按Ctrl+D鍵收藏本站,喜歡本站,講請將本站通過上方的推薦按鈕分享給您的朋友。

在線留言
白姐资料免费资料大全_白姐资料免费资料大全|官网