2_Windows下利用批處理文件獲取命令行命令幫助信息


  我第一次接觸計算機是在2002年,當時XP已經開始風行起來,2000已經普及,98已經慢慢的不再被人使用;

第一次用的操作系統是98的,已經是GUI的界面,CUI的界面當時沒聽過 ,那時還是初中。

     高中三年,那叫一個“好孩子”啊,從來沒有進過網吧,在學校的的機房上過一次計算機課,用的是XP SP1的系統;

大學的時候,學校有些老機器用2000,其他的基本上換上了XP;這個時候聽說了DOS這個玩意;感覺會這個的人都

很牛;后來知道了Linux/Unix以及其他一些系統,這個時候道聽途所一些人的觀點,說Win下沒什么玩的,盡是一些用

圖形封裝的東西,不像Linux一樣有黑乎乎的console界面,后來自己也看過鳥哥的那本書,感覺會Linux的人都是神級的

人物;也跟着一群Linux的鐵桿粉絲,不斷的瞧不起用Win的人,覺得自己會兩條Linux命令就很了不起,感覺自己用一個黑

乎乎的界面完成一些簡單的任務很牛,這種“偽感覺”一直持續到大學畢業;說實話,當時就會幾條簡單的命令,像什么ls、cd

一類的,知道了什么柱面、扇區什么的。

    前兩天我為了清除系統的垃圾文件,弄了一個批處理文件,並且學習了一些Win下的批處理的東西,突然讓我想起了,去年

在各大視頻網站非常流行的一個視屏: dota   藍胖子   1V5視屏; 想起了那個解說的一句話,經此一役,藍胖子高聲大呼:“哥

是有后期的”。讓我不禁心生感慨: Win下的用戶也可以大呼, 哥也是有console支持的。

    雖然用win下的批處理完成了一些非常簡單的任務,還是感覺win下的批處理的功能還是非常強大的,而且有些時候非常方便。

這不,前兩天弄了一個清除chrome瀏覽器緩存文件的批處理,感覺用的還行。但是發現有時候查找命令幫助很麻煩,這不就自己

做了一個獲取系統支持的命令的批處理文件,貼出來供大家看看,雖然簡單,但是可以節省敲代碼的時間:

@echo off

::設置提示信息顏色
set blue=1
set black=0
set white=F
set red=C
color %white%%blue%

title 獲取命令行幫助批處理
echo ********************************************
echo *
echo 歡迎使用—"獲取命令行幫助批處理"—工具
echo *
echo 現在日期: %date%
echo 現在時間: %time%
echo *
echo ********************************************
echo *
echo Author: volcanol
echo version: v0.0
echo Email: lilinly225
echo *
echo 獲取的幫助文件保存在當前文件夾:cmdhelp.txt
echo *
echo ********************************************
echo *
echo *
echo *
pause
color %black%%white%
color %black%%white%
echo *
echo *
echo *
echo on
echo 命令行幫助文件>cmdhelp.txt
echo *>>cmdhelp.txt
echo *>>cmdhelp.txt
echo *>>cmdhelp.txt
echo ********************************************************* >>cmdhelp.txt
echo Author: volcanol >>cmdhelp.txt
echo Version: v0.0>>cmdhelp.txt
echo Email:l ilinly225 >>cmdhelp.txt
echo ********************************************************* >>cmdhelp.txt
echo *>>cmdhelp.txt
echo *>>cmdhelp.txt
echo *>>cmdhelp.txt
echo 以下為所有命令>>cmdhelp.txt
echo * >>cmdhelp.txt
echo * >>cmdhelp.txt
echo * >>cmdhelp.txt
help >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo assoc命令>>cmdhelp.txt
assoc /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo at命令>>cmdhelp.txt
at /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo attrib命令>>cmdhelp.txt
attrib /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo break命令>>cmdhelp.txt
break /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo cacls命令>>cmdhelp.txt
cacls /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo call命令>>cmdhelp.txt
call /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo cd命令>>cmdhelp.txt
cd /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo chcp命令>>cmdhelp.txt
chcp /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo chdir命令>>cmdhelp.txt
chdir /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo chkdsk命令>>cmdhelp.txt
chkdsk /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo chkntfs命令>>cmdhelp.txt
chkntfs /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo cls命令>>cmdhelp.txt
cls /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo cmd命令>>cmdhelp.txt
cmd /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo color命令>>cmdhelp.txt
color /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo comp命令>>cmdhelp.txt
comp /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo compact命令>>cmdhelp.txt
compact /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo convert命令>>cmdhelp.txt
convert /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo copy命令>>cmdhelp.txt
copy /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo date命令>>cmdhelp.txt
date /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo del命令>>cmdhelp.txt
del /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo dir命令>>cmdhelp.txt
dir /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo diskcomp命令>>cmdhelp.txt
diskcomp /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo diskcopy命令>>cmdhelp.txt
diskcopy /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo doskey命令>>cmdhelp.txt
doskey /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo echo命令>>cmdhelp.txt
echo /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo endlocal命令>>cmdhelp.txt
endlocal /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo erase命令>>cmdhelp.txt
erase /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo exit命令>>cmdhelp.txt
exit /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo fc命令>>cmdhelp.txt
fc /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo find命令>>cmdhelp.txt
find /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo findstr命令>>cmdhelp.txt
findstr /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo for命令>>cmdhelp.txt
for /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo format命令>>cmdhelp.txt
format /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo ftype命令>>cmdhelp.txt
ftype /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo goto命令>>cmdhelp.txt
goto /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo graftabl命令>>cmdhelp.txt
graftabl /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo help命令>>cmdhelp.txt
help /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo if命令>>cmdhelp.txt
if /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo label命令 >>cmdhelp.txt
label /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo md命令 >>cmdhelp.txt
md /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo mkdir命令 >>cmdhelp.txt
mkdir /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo mode命令 >>cmdhelp.txt
mode /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo more命令 >>cmdhelp.txt
more /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo move命令 >>cmdhelp.txt
move /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo path命令>>cmdhelp.txt
path /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo pause命令>>cmdhelp.txt
pause /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo popd命令>>cmdhelp.txt
popd /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo print命令>>cmdhelp.txt
print /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo prompt命令>>cmdhelp.txt
prompt /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo pushd命令 >>cmdhelp.txt
pushd /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo rd命令 >>cmdhelp.txt
rd /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo recover命令 >>cmdhelp.txt
recover /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo rem命令 >>cmdhelp.txt
rem /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo ren命令 >>cmdhelp.txt
ren /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo rename命令 >>cmdhelp.txt
rename /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo replace命令 >>cmdhelp.txt
replace /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo rmdir命令 >>cmdhelp.txt
rmdir /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo set命令 >>cmdhelp.txt
set /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo setlocal命令 >>cmdhelp.txt
setlocal /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo shift命令 >>cmdhelp.txt
shift /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo sort命令 >>cmdhelp.txt
sort /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo start命令 >>cmdhelp.txt
start /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo subst命令 >>cmdhelp.txt
subst /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo time命令 >>cmdhelp.txt
time /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo title命令 >>cmdhelp.txt
title /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo tree命令 >>cmdhelp.txt
tree /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo type命令 >>cmdhelp.txt
type /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo ver命令 >>cmdhelp.txt
ver /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo verify命令 >>cmdhelp.txt
verify /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo vol命令 >>cmdhelp.txt
vol /? >>cmdhelp.txt
echo ****************************************************************************** >>cmdhelp.txt
echo xcopy命令 >>cmdhelp.txt
xcopy /? >>cmdhelp.txt

color %white%%blue%
echo *
echo *
echo *
@echo off
@cls
echo ********************************************
echo *
echo *
echo *
echo 已經將命令行-命令幫助導出到: cmdhelp.txt
echo 感謝使用
echo *
echo *
echo *
echo ********************************************
echo *
echo *
echo 請按任意鍵退出......
echo *
echo *
echo *
echo *
echo *
echo *
echo *
echo *
echo *
pause >nil.temp
del /q nil.temp
color %black%%white%

     下面是我用這個批處理文件,在win7下獲取的幫助文件。

 命令行幫助文件
*
*
*
*********************************************************
Author: volcanol
Version: v0.0
Email:l ilinly225
*********************************************************
*
*
*
以下為所有命令
*
*
*
有關某個命令的詳細信息,請鍵入 HELP 命令名
ASSOC 顯示或修改文件擴展名關聯。
ATTRIB 顯示或更改文件屬性。
BREAK 設置或清除擴展式 CTRL+C 檢查。
BCDEDIT 設置啟動數據庫中的屬性以控制啟動加載。
CACLS 顯示或修改文件的訪問控制列表(ACL)。
CALL 從另一個批處理程序調用這一個。
CD 顯示當前目錄的名稱或將其更改。
CHCP 顯示或設置活動代碼頁數。
CHDIR 顯示當前目錄的名稱或將其更改。
CHKDSK 檢查磁盤並顯示狀態報告。
CHKNTFS 顯示或修改啟動時間磁盤檢查。
CLS 清除屏幕。
CMD 打開另一個 Windows 命令解釋程序窗口。
COLOR 設置默認控制台前景和背景顏色。
COMP 比較兩個或兩套文件的內容。
COMPACT 顯示或更改 NTFS 分區上文件的壓縮。
CONVERT 將 FAT 卷轉換成 NTFS。您不能轉換
當前驅動器。
COPY 將至少一個文件復制到另一個位置。
DATE 顯示或設置日期。
DEL 刪除至少一個文件。
DIR 顯示一個目錄中的文件和子目錄。
DISKCOMP 比較兩個軟盤的內容。
DISKCOPY 將一個軟盤的內容復制到另一個軟盤。
DISKPART 顯示或配置磁盤分區屬性。
DOSKEY 編輯命令行、調用 Windows 命令並創建宏。
DRIVERQUERY 顯示當前設備驅動程序狀態和屬性。
ECHO 顯示消息,或將命令回顯打開或關上。
ENDLOCAL 結束批文件中環境更改的本地化。
ERASE 刪除一個或多個文件。
EXIT 退出 CMD.EXE 程序(命令解釋程序)。
FC 比較兩個文件或兩個文件集並顯示它們之間的不同。
FIND 在一個或多個文件中搜索一個文本字符串。
FINDSTR 在多個文件中搜索字符串。
FOR 為一套文件中的每個文件運行一個指定的命令。
FORMAT 格式化磁盤,以便跟 Windows 使用。
FSUTIL 顯示或配置文件系統的屬性。
FTYPE 顯示或修改用在文件擴展名關聯的文件類型。
GOTO 將 Windows 命令解釋程序指向批處理程序
中某個帶標簽的行。
GPRESULT 顯示機器或用戶的組策略信息。
GRAFTABL 啟用 Windows 在圖形模式顯示擴展字符集。
HELP 提供 Windows 命令的幫助信息。
ICACLS 顯示、修改、備份或還原文件和
目錄的 ACL。
IF 在批處理程序中執行有條件的處理過程。
LABEL 創建、更改或刪除磁盤的卷標。
MD 創建一個目錄。
MKDIR 創建一個目錄。
MKLINK 創建符號鏈接和硬鏈接
MODE 配置系統設備。
MORE 逐屏顯示輸出。
MOVE 將一個或多個文件從一個目錄移動到另一個目錄。
OPENFILES 顯示遠程用戶為了文件共享而打開的文件。
PATH 為可執行文件顯示或設置搜索路徑。
PAUSE 停止批處理文件的處理並顯示信息。
POPD 還原由 PUSHD 保存的當前目錄上一次的值。
PRINT 打印一個文本文件。
PROMPT 改變 Windows 命令提示。
PUSHD 保存當前目錄,然后對其進行更改。
RD 刪除目錄。
RECOVER 從損壞的磁盤中恢復可讀取的信息。
REM 記錄批處理文件或 CONFIG.SYS 中的注釋。
REN 重新命名文件。
RENAME 重新命名文件。
REPLACE 替換文件。
RMDIR 刪除目錄。
ROBOCOPY 復制文件和目錄樹的高級實用程序
SET 顯示、設置或刪除 Windows 環境變量。
SETLOCAL 開始用批文件改變環境的本地化。
SC 顯示或配置服務(后台處理)。
SCHTASKS 安排命令和程序在一部計算機上按計划運行。
SHIFT 調整批處理文件中可替換參數的位置。
SHUTDOWN 讓機器在本地或遠程正確關閉。
SORT 將輸入排序。
START 打開單獨視窗運行指定程序或命令。
SUBST 將驅動器號與路徑關聯。
SYSTEMINFO 顯示機器的具體的屬性和配置。
TASKLIST 顯示包括服務的所有當前運行的任務。
TASKKILL 終止正在運行的進程或應用程序。
TIME 顯示或設置系統時間。
TITLE 設置 CMD.EXE 會話的窗口標題。
TREE 以圖形顯示啟動器或路徑的目錄結構。
TYPE 顯示文本文件的內容。
VER 顯示 Windows 的版本。
VERIFY 告訴 Windows 驗證文件是否正確寫入磁盤。
VOL 顯示磁盤卷標和序列號。
XCOPY 復制文件和目錄樹。
WMIC 在交互命令外殼里顯示 WMI 信息。

有關工具的詳細信息,請參閱聯機幫助中的命令行參考。
******************************************************************************
assoc命令
顯示或修改文件擴展名關聯

ASSOC [.ext[=[fileType]]]

.ext 指定跟文件類型關聯的文件擴展名
fileType 指定跟文件擴展名關聯的文件類型

鍵入 ASSOC 而不帶參數,顯示當前文件關聯。如果只用文件擴展
名調用 ASSOC,則顯示那個文件擴展名的當前文件關聯。如果不為
文件類型指定任何參數,命令會刪除文件擴展名的關聯。
******************************************************************************
at命令
AT 命令安排在特定日期和時間運行命令和程序。
要使用 AT 命令,計划服務必須已在運行中。

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername 指定遠程計算機。如果省略這個參數,
會計划在本地計算機上運行命令。
id 指定給已計划命令的識別號。
/delete 刪除某個已計划的命令。如果省略 id,
計算機上所有已計划的命令都會被刪除。
/yes 不需要進一步確認時,跟刪除所有作業
的命令一起使用。
time 指定運行命令的時間。
/interactive 允許作業在運行時,與當時登錄的用戶
桌面進行交互。
/every:date[,...] 指定在每周或每月的特定日期運行命令。
如果省略日期,則默認為在每月的
本日運行。
/next:date[,...] 指定在下一個指定日期(如,下周四)運
行命令。如果省略日期,則默認為在每
月的本日運行。
"command" 准備運行的 Windows NT 命令或批處理
程序。

******************************************************************************
attrib命令
顯示或更改文件屬性。

ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
[drive:][path][filename] [/S [/D] [/L]]
+ 設置屬性。
- 清除屬性。
R 只讀文件屬性。
A 存檔文件屬性。
S 系統文件屬性。
H 隱藏文件屬性。
I 無內容索引文件屬性。
[drive:][path][filename]
指定 attrib 要處理的文件。
/S 處理當前文件夾及其所有子文件夾中的匹配文件。
/D 也處理文件夾。
/L 處理符號鏈接和符號鏈接目標的屬性。

******************************************************************************
break命令
設置或清除 DOS 系統的擴展 CTRL+C 檢測

這個命令是為了與 DOS 系統的兼容而保留的,在 Windows
里不起作用。

如果命令擴展被啟用,並且操作平台是 Windows,
BREAK 命令會在被調試程序調試時輸入一個硬代碼中斷點。
******************************************************************************
cacls命令


注意: 不推薦使用 Cacls,請使用 Icacls。



顯示或者修改文件的訪問控制列表(ACL)



CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]

[/R user [...]] [/P user:perm [...]] [/D user [...]]

filename 顯示 ACL。

/T 更改當前目錄及其所有子目錄中

指定文件的 ACL。

/L 對照目標處理符號鏈接本身

/M 更改裝載到目錄的卷的 ACL

/S 顯示 DACL 的 SDDL 字符串。

/S:SDDL 使用在 SDDL 字符串中指定的 ACL 替換 ACL。

(/E、/G、/R、/P 或 /D 無效)。

/E 編輯 ACL 而不替換。

/C 在出現拒絕訪問錯誤時繼續。

/G user:perm 賦予指定用戶訪問權限。

Perm 可以是: R 讀取

W 寫入

C 更改(寫入)

F 完全控制

/R user 撤銷指定用戶的訪問權限(僅在與 /E 一起使用時合法)。

/P user:perm 替換指定用戶的訪問權限。

Perm 可以是: N 無

R 讀取

W 寫入

C 更改(寫入)

F 完全控制

/D user 拒絕指定用戶的訪問。

在命令中可以使用通配符指定多個文件。

也可以在命令中指定多個用戶。



縮寫:

CI - 容器繼承。

ACE 會由目錄繼承。

OI - 對象繼承。

ACE 會由文件繼承。

IO - 只繼承。

ACE 不適用於當前文件/目錄。

ID - 已繼承。

ACE 從父目錄的 ACL 繼承。

******************************************************************************
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 可以被其他有效數值替換。
%~ 語法被一個有效參數號碼終止。%~ 修定符不能跟 %*
使用
******************************************************************************
cd命令
顯示當前目錄名或改變當前目錄。

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

.. 指定要改成父目錄。

鍵入 CD drive: 顯示指定驅動器中的當前目錄。
不帶參數只鍵入 CD,則顯示當前驅動器和目錄。

使用 /D 開關,除了改變驅動器的當前目錄之外,
還可改變當前驅動器。

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

當前的目錄字符串會被轉換成使用磁盤名上的大小寫。所以,
如果磁盤上的大小寫如此,CD C:\TEMP 會將當前目錄設為
C:\Temp。

CHDIR 命令不把空格當作分隔符,因此有可能將目錄名改為一個
帶有空格但不帶有引號的子目錄名。例如:

cd \winnt\profiles\username\programs\start menu

與下列相同:

cd "\winnt\profiles\username\programs\start menu"

在擴展停用的情況下,您必須鍵入以上命令。
******************************************************************************
chcp命令
顯示或設置活動代碼頁編號。

CHCP [nnn]

nnn 指定代碼頁編號。

不帶參數鍵入 CHCP 以顯示活動代碼頁編號。
******************************************************************************
chdir命令
顯示當前目錄名或改變當前目錄。

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

.. 指定要改成父目錄。

鍵入 CD drive: 顯示指定驅動器中的當前目錄。
不帶參數只鍵入 CD,則顯示當前驅動器和目錄。

使用 /D 開關,除了改變驅動器的當前目錄之外,
還可改變當前驅動器。

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

當前的目錄字符串會被轉換成使用磁盤名上的大小寫。所以,
如果磁盤上的大小寫如此,CD C:\TEMP 會將當前目錄設為
C:\Temp。

CHDIR 命令不把空格當作分隔符,因此有可能將目錄名改為一個
帶有空格但不帶有引號的子目錄名。例如:

cd \winnt\profiles\username\programs\start menu

與下列相同:

cd "\winnt\profiles\username\programs\start menu"

在擴展停用的情況下,您必須鍵入以上命令。
******************************************************************************
chkdsk命令
檢查磁盤並顯示狀態報告。


CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]] [/B]


volume 指定驅動器號(后面跟一個冒號)、
裝入點或卷名。
filename 僅用於 FAT/FAT32: 指定要檢查是否有碎片的文件。
/F 修復磁盤上的錯誤。
/V 在 FAT/FAT32 上: 顯示磁盤上每個文件的
完整路徑和名稱。
在 NTFS 上: 如果有清除消息,則顯示。
/R 查找損壞的扇區並恢復可讀信息
(隱含 /F)。
/L:size 僅用於 NTFS: 將日志文件大小更改為指定的 KB 數。如果未
指定大小,則顯示當前
大小。
/X 如果必要,則先強制卸除卷。
該卷的所有打開句柄都會無效
(隱含 /F)。
/I 僅用於 NTFS: 對索引項進行強度較小的檢查。
/C 僅用於 NTFS: 跳過文件夾結構的
循環檢查。
/B 僅用於 NTFS: 重新評估該卷上的壞簇
(隱含 /R)

/I 或 /C 開關通過跳過對該卷的某些檢查,
可減少運行 Chkdsk 所需的時間。
******************************************************************************
chkntfs命令
啟動時顯示或修改磁盤檢查。

CHKNTFS volume [...]
CHKNTFS /D
CHKNTFS /T[:time]
CHKNTFS /X volume [...]
CHKNTFS /C volume [...]

volume 指定驅動器號(后面跟一個冒號)、裝入點或卷名。
/D 將計算機還原為默認行為;
啟動時檢查所有驅動器,並對有問題的驅動器運行 chkdsk。
/T:time 將 AUTOCHK 初始遞減計數時間
更改為指定的時間,單位為秒。
如果沒有指定時間,則顯示當前設置。
/X 將驅動器排除在啟動時檢查范圍之外。被排除的驅動器在命令調用之間不會
累計。
/C 安排驅動器在啟動時檢查;
如果驅動器有問題,則運行 chkdsk。

如果未指定開關,CHKNTFS 將顯示指定的驅動器是否有問題
或者是否計划在下一次重新啟動時執行檢查。
******************************************************************************
cls命令
清除屏幕。

CLS
******************************************************************************
cmd命令
啟動 Windows 命令解釋器的一個新實例

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 語法會在輸入時
擴展變量,這與在一個 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 所有調用的擴展,這要通過設置使用
REGEDIT.EXE 的注冊表中的一個或兩個 REG_DWORD 值:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

和/或

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

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

在批處理文件中,SETLOCAL ENABLEEXTENSIONS 或 DISABLEEXTENSIONS 參數
比 /E:ON 或 /E:OFF 開關有優先權。請參閱 SETLOCAL /? 獲取詳細信息。

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

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

有關特定詳細信息,請鍵入 commandname /? 查看。

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

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

和/或

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion

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

在批處理文件中,SETLOCAL ENABLEDELAYEDEXPANSION 或 DISABLEDELAYEDEXPANSION
參數比 /V:ON 或 /V:OFF 開關有優先權。請參閱 SETLOCAL /?
獲取詳細信息。

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

您可以用 /F:ON 或 /F:OFF 開關為 CMD.EXE 的某個
調用而啟用或禁用文件名完成。您可以在計算上和/或
用戶登錄會話上啟用或禁用 CMD.EXE 所有調用的完成,
這可以通過使用 REGEDIT.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
鍵跟控制字符同時按下,會倒着顯示列表。如果對該行進行了
任何編輯,並再次按下控制字符,保存的相符路徑的列表會被
丟棄,新的會被生成。如果在文件和目錄名完成之間切換,會
發生同樣現象。兩個控制字符之間的唯一區別是文件完成字符
符合文件和目錄名,而目錄完成字符只符合目錄名。如果文件
完成被用於內置式目錄命令(CDMDRD),就會使用目錄
完成。
用引號將相符路徑括起來,完成代碼可以正確處理含有空格
或其他特殊字符的文件名。同時,如果備份,然后從行內調用
文件完成,完成被調用時位於光標右方的文字會被調用。

需要引號的特殊字符是:
<space>
()[]{}^=;!'+,`~(&()
******************************************************************************
color命令
設置默認的控制台前景和背景顏色。

COLOR [attr]

attr 指定控制台輸出的顏色屬性

顏色屬性由兩個十六進制數字指定 -- 第一個為背景,第二個則為
前景。每個數字可以為以下任何值之一:

0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 淺綠色 B = 淡淺綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色

如果沒有給定任何參數,該命令會將顏色還原到 CMD.EXE 啟動時
的顏色。這個值來自當前控制台窗口、/T 命令行開關或
DefaultColor 注冊表值。

如果用相同的前景和背景顏色來執行 COLOR 命令,COLOR 命令
會將 ERRORLEVEL 設置為 1。

例如: "COLOR fc" 在亮白色上產生亮紅色
******************************************************************************
comp命令
比較兩個文件或兩個文件集的內容。

COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] [/OFF[LINE]]

data1 指定要比較的第一個文件的位置和名稱。
data2 指定要比較的第二個文件的位置和名稱。
/D 以十進制格式顯示差異。
/A 以 ASCII 字符顯示差異。
/L 顯示不同的行數。
/N=number 只比較每個文件中第一個指定的行數。
/C 比較文件時 ASCII 字母不區分大小寫。
/OFF[LINE] 不要跳過帶有脫機屬性集的文件。

要比較文件集,請在 data1 和 data2 參數中使用通配符。
******************************************************************************
compact命令
顯示或改變 NTFS 分區上文件的壓縮.

COMPACT [/C | /U] [/S[:dir]] [/A] [/I] [/F] [/Q] [filename [...]]

/C 壓縮指定的文件。會給目錄作標記,這樣以后添加的文件
會得到壓縮。
/U 解壓縮指定的文件。會給目錄作標記,這樣以后添加的文
件不會得到壓縮。
/S 在指定的目錄和所有子目錄中的文件上執行指定操作。
默認 "dir"是當前目錄。
/A 顯示具有隱藏或系統屬性的文件。在默認
情況下,這些文件都是被忽略的。
/I 即使在錯誤發生后,依然繼續執行指定的操作。在默認情況
下,COMPACT 在遇到錯誤時會停止。
/F 在所有指定文件上強制壓縮操作,包括已被壓縮的文件。
在默認情況下,已經壓縮的文件被忽略。
/Q 只報告最重要的信息。
filename 指定類型、文件和目錄。

不跟參數一起使用時,COMPACT 顯示當前目錄及其所含文件的
壓縮狀態。您可以使用多個文件名和通配符。在多個參數之間
必須加空格。
******************************************************************************
convert命令
Delphi Form Conversion Utility Version 7.0
Copyright (c) 1995-2010 Embarcadero Technologies, Inc.
******************************************************************************
copy命令
將一份或多份文件復制到另一個位置。

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [destination [/A | /B]]

source 指定要復制的文件。
/A 表示一個 ASCII 文本文件。
/B 表示一個二進位文件。
/D 允許解密要創建的目標文件
destination 為新文件指定目錄和/或文件名。
/V 驗證新文件寫入是否正確。
/N 復制帶有非 8dot3 名稱的文件時,
盡可能使用短文件名。
/Y 不使用確認是否要覆蓋現有目標文件
的提示。
/-Y 使用確認是否要覆蓋現有目標文件
的提示。
/Z 用可重新啟動模式復制已聯網的文件。
/L 如果源是符號鏈接,請將鏈接復制
到目標而不是源鏈接指向的實際文件。

命令行開關 /Y 可以在 COPYCMD 環境變量中預先設定。
這可能會被命令行上的 /-Y 替代。除非 COPY
命令是在一個批處理腳本中執行的,默認值應為
在覆蓋時進行提示。

要附加文件,請為目標指定一個文件,為源指定
數個文件(用通配符或 file1+file2+file3 格式)。
******************************************************************************
date命令
顯示或設置日期。

DATE [/T | date]

顯示當前日期設置和輸入新日期的提示,請鍵入
不帶參數的 DATE。要保留現有日期,請按 Enter。

如果命令擴展被啟用,DATE 命令會支持 /T 開關;
該開關指示命令只輸出當前日期,但不提示輸入新日期。
******************************************************************************
del命令
刪除一個或數個文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

names 指定一個或多個文件或者目錄列表。
通配符可用來刪除多個文件。
如果指定了一個目錄,該目錄中的所
有文件都會被刪除。

/P 刪除每一個文件之前提示確認。
/F 強制刪除只讀文件。
/S 刪除所有子目錄中的指定的文件。
/Q 安靜模式。刪除全局通配符時,不要求確認
/A 根據屬性選擇要刪除的文件
屬性 R 只讀文件 S 系統文件
H 隱藏文件 A 存檔文件
I 無內容索引文件 L 重分析點
- 表示“否”的前綴

如果命令擴展被啟用,DELERASE 更改如下:

/S 開關的顯示句法會顛倒,即只顯示已經
刪除的文件,而不顯示找不到的文件。
******************************************************************************
dir命令
顯示目錄中的文件和子目錄列表。

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

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

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

可以在 DIRCMD 環境變量中預先設定開關。通過添加前綴 - (破折號)
來替代預先設定的開關。例如,/-W。
******************************************************************************
diskcomp命令
比較兩張軟盤的內容。

DISKCOMP [drive1: [drive2:]]

******************************************************************************
diskcopy命令
把一張軟盤的內容復制到另一張。

DISKCOPY [drive1: [drive2:]] [/V]

/V 驗證信息是否已正確復制。

兩張軟盤的類型必須相同。
您可以為 drive1 和 drive2 指定同樣的驅動器。
******************************************************************************
doskey命令
編輯命令行,重新調用 Windows 命令,並創建宏。

DOSKEY [/REINSTALL] [/LISTSIZE=size] [/MACROS[:ALL | :exename]]
[/HISTORY] [/INSERT | /OVERSTRIKE] [/EXENAME=exename] [/MACROFILE=filename]
[macroname=[text]]

/REINSTALL 安裝新的 Doskey 副本。
/LISTSIZE=size 設置命令歷史記錄的緩沖區大小。
/MACROS 顯示所有 Doskey 宏。
/MACROS:ALL 為具有 Doskey 宏的所有可執行文件顯示
所有 Doskey 宏。
/MACROS:exename 顯示指定可執行文件的所有 Doskey 宏。
/HISTORY 顯示存儲在內存中的所有命令。
/INSERT 指定您鍵入的新文本插入到舊文本中。
/OVERSTRIKE 指定新文本覆蓋舊文本。
/EXENAME=exename 指定可執行文件。
/MACROFILE=filename 指定要安裝的宏文件。
macroname 指定您創建的宏的名稱。
text 指定要錄制的命令。

上下箭頭 重新調用命令;Esc 清除命令行;F7
顯示命令歷史記錄;Alt+F7 清除
命令歷史記錄;F8 搜索命令歷史記錄;F9 按編號選擇命令;Alt+F10 清除宏定義。

以下是 Doskey 宏定義的一些特殊代碼:
$T 命令分隔符。允許一個宏中存在多個命令。
$1-$9 批處理參數。與批處理程序中的 %1-%9 等同。
$* 以命令行中命令名稱后面的任何內容替換的符號。
******************************************************************************
echo命令
顯示信息,或將命令回顯打開或關上。

ECHO [ON | OFF]
ECHO [message]

要顯示當前回顯設置,鍵入不帶參數的 ECHO
******************************************************************************
endlocal命令
結束批處理文件中環境改動的本地化操作。在執行ENDLOCAL 之后
所做的環境改動不再僅限於批處理文件。批處理文件結束后,
原先的設置無法還原。

ENDLOCAL

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

如果相應的 SETLOCAL 用新的 ENABLEEXTENSIONS 或
DISABLEEXTENSIONS 選項啟用或停用了命令擴展,那么,在
ENDLOCAL 之后,命令擴展的啟用/停用狀態會還原到執行
相應的 SETLOCAL 命令前的狀態。
******************************************************************************
erase命令
刪除一個或數個文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

names 指定一個或多個文件或者目錄列表。
通配符可用來刪除多個文件。
如果指定了一個目錄,該目錄中的所
有文件都會被刪除。

/P 刪除每一個文件之前提示確認。
/F 強制刪除只讀文件。
/S 刪除所有子目錄中的指定的文件。
/Q 安靜模式。刪除全局通配符時,不要求確認
/A 根據屬性選擇要刪除的文件
屬性 R 只讀文件 S 系統文件
H 隱藏文件 A 存檔文件
I 無內容索引文件 L 重分析點
- 表示“否”的前綴

如果命令擴展被啟用,DELERASE 更改如下:

/S 開關的顯示句法會顛倒,即只顯示已經
刪除的文件,而不顯示找不到的文件。
******************************************************************************
exit命令
退出 CMD.EXE 程序(命令解釋器)或當前批處理腳本。

EXIT [/B] [exitCode]

/B 指定要退出當前批處理腳本而不是 CMD.EXE。如果從一個
批處理腳本外執行,則會退出 CMD.EXE

exitCode 指定一個數字號碼。如果指定了 /B,將 ERRORLEVEL
設成那個數字。如果退出 CMD.EXE,則用那個數字設置
過程退出代碼。
******************************************************************************
fc命令
比較兩個文件或兩個文件集並顯示它們之間
的不同


FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn]
[drive1:][path1]filename1 [drive2:][path2]filename2
FC /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
指定要比較的第二個文件或第二個文件集。

******************************************************************************
find命令
在文件中搜索字符串。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

/V 顯示所有未包含指定字符串的行。
/C 僅顯示包含字符串的行數。
/N 顯示行號。
/I 搜索字符串時忽略大小寫。
/OFF[LINE] 不要跳過具有脫機屬性集的文件。
"string" 指定要搜索的文本字符串。
[drive:][path]filename
指定要搜索的文件。

如果沒有指定路徑,FIND 將搜索在提示符處鍵入
的文本或者由另一命令產生的文本。
******************************************************************************
findstr命令
在文件中尋找字符串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/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 的文字用法
\<xyz 字位置: 字的開始
xyz\> 字位置: 字的結束

有關 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]

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

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

某些范例可能有助:

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 分析邏輯,方法是,
用單引號將括號之間的 file-set 括起來。這樣,該字符
串會被當作一個文件中的一個單一輸入行進行解析。

最后,可以用 FOR /F 命令來分析命令的輸出。方法是,將
括號之間的 file-set 變成一個反括字符串。該字符串會
被當作命令行,傳遞到一個子 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 的大寫變量名
比較易讀,而且避免與不分大小寫的組合鍵混淆。
******************************************************************************
format命令
格式化磁盤以供 Windows 使用。

FORMAT volume [/FS:file-system] [/V:label] [/Q] [/A:size] [/C] [/X] [/P:passes] [/S:state]
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

如果判定使用指定的群集大小無法滿足以上需求,將立即停止格式化。

大於 4096 的分配單元大小不支持 NTFS 壓縮。

/F:size 指定要格式化的軟盤大小(1.44)
/T:tracks 為磁盤指定每面磁道數。
/N:sectors 指定每條磁道的扇區數。
/P:passes 將卷上每個扇區的操作次數清零。
此開關對 /Q 無效
/S:state 其中 "state" 為 "enable" 或 "disable"
默認情況下啟用了短名稱
******************************************************************************
ftype命令
顯示或修改用在文件擴展名關聯中的文件類型

FTYPE [fileType[=[openCommandString]]]

fileType 指定要檢查或改變的文件類型
openCommandString 指定調用這類文件時要使用的開放式命令。

鍵入 FTYPE 而不帶參數來顯示當前有定義的開放式命令字符串的
文件類型。FTYPE 僅用一個文件類型啟用時,它顯示那個文件類
型目前的開放式命令字符串。如果不為開放式命令字符串指定,
FTYPE 命令將刪除那個文件類型的開放式命令字符串。在一個
開放式命令字符串之內,命令字符串 %0 或 %1 被通過關聯調用
的文件名所代替。%* 得到所有的參數,%2 得到第一個參數,
%3 得到第二個,等等。%~n 得到其余所有以 nth 參數打頭的
參數;n 可以是從 2 到 9 的數字。例如:

ASSOC .pl=PerlScript
FTYPE PerlScript=perl.exe %1 %*

允許您啟用以下 Perl 腳本:

script.pl 1 2 3

如果不想鍵入擴展名,則鍵入以下字符串:

set PATHEXT=.pl;%PATHEXT%

被啟動的腳本如下:

script 1 2 3
******************************************************************************
goto命令
將 cmd.exe 定向到批處理程序中帶標簽的行。

GOTO label

label 指定批處理程序中用作標簽的文字字符串。

標簽必須單獨一行,並且以冒號打頭。

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

GOTO 命令現在接受目標標簽 :EOF,這個標簽將控制轉移到當前
批腳本文件的結尾。不定義就退出批腳本文件,這是一個容易的
辦法。有關能使該功能有用的 CALL 命令的擴展描述,請鍵入
CALL /?。
******************************************************************************
graftabl命令
Enable Windows to display an extended character set in graphics mode.

GRAFTABL [xxx]
GRAFTABL /STATUS

xxx Specifies a code page number.
/STATUS Displays the current code page selected for use with GRAFTABL.

******************************************************************************
help命令
提供 Windows 命令的幫助信息。

HELP [command]

command - 顯示該命令的幫助信息。
******************************************************************************
if命令
執行批處理程序中的條件處理。

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

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

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

其中, compare-op 可以是:

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

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

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

如果已定義環境變量,DEFINED 條件的作用跟 EXIST 的一樣,
除了它取得一個環境變量,返回的結果是 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 當前數值的
字串符表達式;否則,您會得到其數值。
******************************************************************************
label命令
創建、更改或刪除磁盤的卷標。

LABEL [drive:][label]
LABEL [/MP] [volume] [label]

drive: 指定驅動器號。
label 指定卷標。
/MP 指定卷應被視為裝入點或卷名。
volume 指定驅動器號(后面跟一個冒號)、裝入點或卷名。
如果指定了卷名,/MP 標志則不必要。
******************************************************************************
md命令
創建目錄。

MKDIR [drive:]path
MD [drive:]path

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

如果需要,MKDIR 會在路徑中創建中級目錄。例如: 假設 \a 不
存在,那么:

mkdir \a\b\c\d

與:

mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d

相同。如果擴展被停用,則需要鍵入 mkdir \a\b\c\d。
******************************************************************************
mkdir命令
創建目錄。

MKDIR [drive:]path
MD [drive:]path

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

如果需要,MKDIR 會在路徑中創建中級目錄。例如: 假設 \a 不
存在,那么:

mkdir \a\b\c\d

與:

mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d

相同。如果擴展被停用,則需要鍵入 mkdir \a\b\c\d。
******************************************************************************
mode命令
配置系統設備。

串行端口: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]
[to=on|off] [xon=on|off] [odsr=on|off]
[octs=on|off] [dtr=on|off|hs]
[rts=on|off|hs|tg] [idsr=on|off]

設備狀態: MODE [device] [/STATUS]

打印重定向: MODE LPTn[:]=COMm[:]

選擇代碼頁: MODE CON[:] CP SELECT=yyy

代碼頁狀態: MODE CON[:] CP [/STATUS]

顯示模式: MODE CON[:] [COLS=c] [LINES=n]

擊鍵率: MODE CON[:] [RATE=r DELAY=d]
******************************************************************************
more命令
逐屏顯示輸出。

MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]

[drive:][path]filename 指定要逐屏顯示的文件。

command-name 指定要顯示其輸出的命令。

/E 啟用擴展功能
/C 顯示頁面前先清除屏幕
/P 擴展 FormFeed 字符
/S 將多個空白行縮成一行
/Tn 將制表符擴展為 n 個空格(默認值為 8)

開關可以出現在 MORE 環境變量中。
+n 從第 n 行開始顯示第一個文件

files 要顯示的文件列表。使用空格分隔列表中的文件。
如果已啟用擴展功能,則在 -- More -- 提示處 接受下列命令:
P n 顯示下 n 行
S n 跳過下 n 行
F 顯示下個文件
Q 退出
= 顯示行號
? 顯示幫助行
<space> 顯示下一頁
<ret> 顯示下一行
******************************************************************************
move命令
移動文件並重命名文件和目錄。

要移動至少一個文件:
MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination

要重命名一個目錄:
MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2

[drive:][path]filename1 指定您想移動的文件位置和名稱。
destination 指定文件的新位置。目標可包含一個驅動器號
和冒號、一個目錄名或組合。如果只移動一個文件
並在移動時將其重命名,您還可以包括文件名。
[drive:][path]dirname1 指定要重命名的目錄。
dirname2 指定目錄的新名稱。

/Y 取消確認覆蓋一個現有目標文件的提示。
/-Y 對確認覆蓋一個現有目標文件發出提示。

命令行開關 /Y 可以出現在 COPYCMD 環境變量中。這可以用命令行上
的 /-Y 替代。默認值是,除非 MOVE 命令是從一個批腳本內
執行的,覆蓋時都發出提示。
******************************************************************************
path命令
為可執行文件顯示或設置一個搜索路徑。

PATH [[drive:]path[;...][;%PATH%]
PATH ;

鍵入 PATH ; 清除所有搜索路徑設置並指示 cmd.exe 只在當前
目錄中搜索。
鍵入 PATH 但不加參數,顯示當前路徑。
將 %PATH% 包括在新的路徑設置中會將舊路徑附加到新設置。
******************************************************************************
pause命令
暫停批處理程序,並顯示以下消息:
請按任意鍵繼續. . . ******************************************************************************
popd命令
更改到 PUSHD 命令存儲的目錄。

POPD


如果命令擴展被啟用,從推目錄堆棧 POPD 驅動器時,POPD
命令會刪除 PUSHD 創建的臨時驅動器號。
******************************************************************************
print命令
打印文本文件。

PRINT [/D:device] [[drive:][path]filename[...]]

/D:device 指定打印設備。

******************************************************************************
prompt命令
更改 cmd.exe 命令提示符。

PROMPT [text]

text 指定新的命令提示符。

提示符可以由普通字符及下列特定代碼組成:

$A & (短 and 符號)
$B | (管道)
$C ( (左括弧)
$D 當前日期
$E Escape 碼(ASCII 碼 27)
$F ) (右括弧)
$G > (大於符號)
$H Backspace (擦除前一個字符)
$L < (小於符號)
$N 當前驅動器
$P 當前驅動器及路徑
$Q = (等號)
$S (空格)
$T 當前時間
$V Windows 版本號
$_ 換行
$$ $ (貨幣符號)

如果命令擴展被啟用,PROMPT 命令會支持下列格式化字符:

$+ 根據 PUSHD 目錄堆棧的深度,零個或零個以上加號(+)字符,
一個推的層一個字符。

$M 如果當前驅動器不是網絡驅動器,顯示跟當前驅動器號或
空字符串有關聯的遠程名。
******************************************************************************
pushd命令
保存當前目錄以供 POPD 命令使用,然后改到指定的目錄。

PUSHD [path | ..]

path 指定要成為當前目錄的目錄。

如果命令擴展被啟用,除了一般驅動器號和路徑,PUSHD
命令還接受網絡路徑。如果指定了網絡路徑,PUSHD 將創建一個
指向指定網絡資源的臨時驅動器號,然后再用剛定義的驅動器
號更改當前的驅動器和目錄。可以從 Z: 往下分配臨時驅動器
號,使用找到的第一個沒有用過的驅動器號。
******************************************************************************
rd命令
刪除一個目錄。

RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path

/S 除目錄本身外,還將刪除指定目錄下的所有子目錄和
文件。用於刪除目錄樹。

/Q 安靜模式,帶 /S 刪除目錄樹時不要求確認
******************************************************************************
recover命令
從損壞的磁盤中恢復可讀取的信息。

RECOVER [drive:][path]filename
在使用 RECOVER 命令之前,
請先參閱 Windows 幫助中的聯機命令參考。
******************************************************************************
rem命令
在批處理文件或 CONFIG.SYS 里加上注解或說明。

REM [comment]
******************************************************************************
ren命令
重命名文件。

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

請注意,您不能為目標文件指定新的驅動器或路徑。
******************************************************************************
rename命令
重命名文件。

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

請注意,您不能為目標文件指定新的驅動器或路徑。
******************************************************************************
replace命令
替換文件。

REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W]
REPLACE [drive1:][path1]filename [drive2:][path2] [/P] [/R] [/S] [/W] [/U]

[drive1:][path1]filename 指定源文件。
[drive2:][path2] 指定要替換文件的目錄。
/A 把新文件加入目標目錄。不能和/S 或 /U 命令行開關搭配使用。
/P 替換文件或加入源文件之前會先提示您進行確認。
/R 替換只讀文件以及未受保護的文件。
/S 替換目標目錄中所有子目錄的文件。不能與 /A 命令開關搭配使用。
/W 等您插入磁盤以后再運行。
/U 只會替換或更新比源文件日期早的文件。不能與 /A 命令行開關搭配使用。
******************************************************************************
rmdir命令
刪除一個目錄。

RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path

/S 除目錄本身外,還將刪除指定目錄下的所有子目錄和
文件。用於刪除目錄樹。

/Q 安靜模式,帶 /S 刪除目錄樹時不要求確認
******************************************************************************
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% - 擴展到調用命令處理器的原始命令行。

%HIGHESTNUMANODENUMBER% - 擴展到此計算機上的最高 NUMA 節點號。
******************************************************************************
setlocal命令
開始批處理文件中環境改動的本地化操作。在執行 SETLOCAL 之后
所做的環境改動只限於批處理文件。要還原原先的設置,必須執
行 ENDLOCAL。達到批處理文件結尾時,對於該批處理文件的每個
尚未執行的 SETLOCAL 命令,都會有一個隱含的 ENDLOCAL 被執行。

SETLOCAL

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

SETLOCAL 批命令現在可以接受可選參數:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
啟用或禁用命令處理器擴展。這些
參數比 CMD /E:ON 或 /E:OFF
開關有優先權。請參閱 CMD /? 獲取詳細信息。
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
啟用或禁用延緩環境變量
擴展。這些參數比 CMD
/V:ON 或 /V:OFF 開關有優先權。請參閱 CMD /? 獲取詳細信息。
無論在 SETLOCAL 命令之前它們的設置是什么,這些修改會一直
保留到匹配的 ENDLOCAL 命令。

如果有一個參數,
SETLOCAL 命令將設置 ERRORLEVEL 的值。如果有兩個有效參數中的一個,
該值則為零。
用下列技巧,您可以在批腳本中
使用這個來決定擴展是否可用:

VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Unable to enable extensions

這個方法之所以有效,是因為在 CMD.EXE 的舊版本上,SETLOCAL
未設置 ERRORLEVEL 值。具有不正確參數的 VERIFY 命令將
ERRORLEVEL 值初始化成非零值。
******************************************************************************
shift命令
更改批處理文件中可替換參數的位置。

SHIFT [/n]

如果命令擴展被啟用,SHIFT 命令支持/n 命令行開關;該命令行開關告訴
命令從第 n 個參數開始移位;n 介於零和八之間。例如:

SHIFT /2

會將 %3 移位到 %2,將 %4 移位到 %3,等等;並且不影響 %0 和 %1。
******************************************************************************
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"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/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 優先級類中啟動應用程序。
NODE 將首選非一致性內存結構 (NUMA) 節點指定為十進制整數。
AFFINITY 將處理器關聯掩碼指定為十六進制數字。進程被限制在這些
處理器上運行。

當 /AFFINITY 和 /NODE 結合時,會對關聯掩碼進行不同的解釋。
指定關聯掩碼,正如 NUMA 節點的處理器掩碼正確移動到零位
起始位置一樣。進程被限制在指定關聯掩碼和 NUMA 節點之間的
那些通用處理器上運行。如果沒有通用處理器,則進程被限制在
指定的 NUMA 節點上運行。
WAIT 啟動應用程序並等待它終止。
command/program
如果它是內部 cmd 命令或批文件,則該命令處理器是使用
cmd.exe 的 /K 開關運行的。這表示運行該命令之后,該窗口
將仍然存在。

如果它不是內部 cmd 命令或批文件,則它就是一個程序,並將
作為一個窗口化應用程序或控制台應用程序運行。

parameters 這些是傳遞給 command/program 的參數。

注意: 在 64 位平台上不支持 SEPARATE 和 SHARED 選項。

通過指定 /NODE,可按照利用 NUMA 系統中的內存區域的方式創建進程。例如,
可以創建兩個完全通過共享內存互相通信的進程以共享相同的首選 NUMA 節點,
從而最大限度地減少內存延遲。如有可能,它們即會分配來自相同 NUMA 節點的
內存,並且會在指定節點之外的處理器上自由運行。

啟動 /NODE 1 application1.exe
啟動 /NODE 1 application2.exe

這兩個進程可被進一步限制在相同 NUMA 節點內的指定處理器上運行。在以下
示例中, application1 在節點的兩個低順序處理器上運行,而 application2
在該節點的其后兩個處理器上運行。該示例假定指定節點至少具有四個邏輯
處理器。請注意,節點號可更改為該計算機的任何有效節點號,而無需更改關聯
掩碼。

啟動 /NODE 1 /AFFINITY 0x3 application1.exe
啟動 /NODE 1 /AFFINITY 0xc application2.exe

如果命令擴展被啟用,通過命令行或 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。
******************************************************************************
subst命令
將路徑與驅動器號關聯。

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

drive1: 指定要分配路徑的虛擬驅動器。
[drive2:]path 指定物理驅動器和要分配給虛擬驅動器的路徑。
/D 刪除被替換的
(虛擬)驅動器。

不帶參數鍵入 SUBST,以顯示當前虛擬驅動器的列表。
******************************************************************************
time命令
顯示或設置系統時間。

TIME [/T | time]

顯示當前時間設置和輸入新時間的提示,請鍵入
不帶參數的 TIME。要保留現有時間,請按 Enter。

如果命令擴展被啟用,TIME 命令會支持 /T 命令行開關;該命令行開關告訴
命令只輸出當前時間,但不提示輸入新時間。
******************************************************************************
title命令
設置命令提示窗口的窗口標題。

TITLE [string]

string 指定命令提示窗口的標題。
******************************************************************************
tree命令
以圖形顯示驅動器或路徑的文件夾結構。

TREE [drive:][path] [/F] [/A]

/F 顯示每個文件夾中文件的名稱。
/A 使用 ASCII 字符,而不使用擴展字符。

******************************************************************************
type命令
顯示文本文件的內容。

TYPE [drive:][path]filename
******************************************************************************
ver命令
顯示 Windows 版本。

VER
******************************************************************************
verify命令
指示 cmd.exe 是否要驗證文件是否已正確地寫入磁盤。

VERIFY [ON | OFF]

要顯示當前 VERIFY 設置,鍵入不帶參數的 VERIFY。
******************************************************************************
vol命令
顯示磁盤卷標和序列號(如果存在)。

VOL [drive:]
******************************************************************************
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] [/B]
[/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 取消提示以確認要覆蓋現有目標文件。
/-Y 要提示以確認要覆蓋現有目標文件。
/Z 在可重新啟動模式下復制網絡文件。
/B 復制符號鏈接本身與鏈接目標相對。
/J 復制時不使用緩沖的 I/O。推薦復制大文件時使用。

開關 /Y 可以預先在 COPYCMD 環境變量中設置。
這可能被命令行上的 /-Y 覆蓋。

        還可以利用批處理文件弄一個郵箱登陸的批處理,這個就不弄了,有興趣的可以自己弄弄。

 

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM