1. 批處理文件的高級命令
if命令用語在批處理程序中執行條件處理
語法:
if [not] errorlevel Number Command [else Expression]
if [not] Strting==String2 Command [else Expression]
if [not] exist FileName Command [else Expression}
如果啟用了命令擴展,可以使用以下語法:
if [/i] String1 Compare0p String2 command [else Expression]
if cmdextversion Nuber Command [else Expression]
參數:
not
指定只有當條件為假時才執行該命令
errorlevel Number
只有當由cmd.exe運行的前一個程序返回等於或大於Number的退出碼時,才能指定真條件。
Command
指定只有滿足前面的條件時才執行的命令。
String1==String2
只有當String和String2相同時才能指定真條件。這些值可以是文字字元串或批處理變數(例如%1)。對於文字字元串,不需要使用問號。
exist FileName
如果FileName存在,則指定真條件。
Compareop
指定3個字母的比較運算符。表1列出了Compareop的有效值。 運 算 符 描 述 運 算 符 描 述 EQU 等於 LEQ 小於或等於 NEQ 不等於 GTR 大於 LSS 小於 GEQ 大於或等於 /i
強制字元串比較忽略大小寫。可以在if的String1==String2格上使用/i。這些比較是通用的。因為如果String1和String2全部由數字組成,則字元串將轉化為數字並執行比較。
cmdxtversion Number
只有與cmd.exe的「命令擴展」功能相關的內部版本號等於或大於Number時,才指定真條件。第一版本是1。當命令擴展的功能有重大增強時,則在此號碼上加1。禁用命令擴展時(默認情況下命令擴展為啟用),cmdextversion條件不為真。
defined Variable
如果定義了Variable,則指定條件為真。
Expression
指定將傳遞給else子句中的命令行命令和任何參數。
舉例:
例1:要在找不到文件proct.dat時顯示找不到數據文件的消息,則輸入:
if not exist proct .dat echo Cannot find data file
例2:如果在格式化驅動器A中的磁碟期間發生錯誤,則以下命令將顯示錯誤消息。
----------------------------------------------------------------------------------------------------
:begin
@echo off
format a:/s
if not errorlevel 1 goto end
echo An error occurred ring formatting.
:end
echo End of batch program.
----------------------------------------------------------------------------------------------------
如果沒發生錯誤,不會出現錯誤消息 使用choice命令,在批處理程序中,通過顯示提示信息並暫停批處理程序,用戶可以從一組選項鍵中進行選擇。
語法:
choice [/c [Choices]] [/n] [/cs] [/t Timeout /d Choice] [/m Text]
參數:
/c Choices
指定用戶選項鍵。顯示時,選項鍵由逗號分隔,出現在中括弧([])中,後面跟著問號。如果未指定「/c Choices 」,默認情況下,Choice顯示使用[Y,N]。
/n
隱藏用戶選項鍵。如果使用此命令行選項,將在提示符之前出現消息正文,選項仍處於啟用狀態。
/cs
指定用戶選項鍵必須區分大小寫。默認情況下,用戶選項鍵不區分大小寫。
/t Timeout /d Choice
指定在默認為指定鍵之前choice暫停指定的秒數。表2描述了/t命令行選項的值。 值 描 述 Timeout 要暫停的秒數。可接受的值介於0~9 999。如果使用0,choice在默認為指定鍵之前不暫停 /d Choice 指定Timeout秒數之後的默認選擇。使用的字元必須在由/c Choice指定的選擇集中。如果使用此命令行選項,還必須同時指定/t Timeout 指定要在提示符之前顯示的文字。如果使用包括命令行選項字元(即「/」)作為提示符之前的一部分文字,必須用引號將該文字引起來。如果未指定任何文字,choice將只顯示提示符。
舉例:
----------------------------------------------------------------------------------------------------
@echo off
choice /C dme /m defrag,mem,end
if errorlevel 3 goto end //應先判斷數值最高的錯誤碼
if errorlevel 2 goto mem
if errotlevel 1 goto defrag
:defrag
c:dosdefrag
goto den
:end
echo good bye
----------------------------------------------------------------------------------------------------
此文件運行後,將顯示:
defrag,men,end[D,M,E]?用戶可選擇d m e
然後if語句將做出判斷,c表示執行標號為end的程序段,程序結束。 for命令用於對一組文件中的每個文件運行指定的命令
語法:
for [%Variable | %%Variable ] in (Set) do Command [CommandLineoptions]
參數:
[%Variable | %%Variable ]
必需參數,代表可替換的參數。使用%Variable通過命令提示符執行for命令。使用%%Variable在批處理文件中執行for命令。變數要區分大小寫,並且必須用Alpha值表示,例如%A、%B或%C。
(set)
必需參數,指定要用指定命令處理的一個或多個文件、目錄、數值范圍以及文本字元串。需要括弧。
Command
必需參數,指定要對包括在指定的(Set)中每個文件、目錄、數值范圍以及文本字元串所執行的命令。
CommandLineOptions
指定要與所指定命令一起使用的任何命令行選項。
循環命令只要條件符合,它將多次執行同一命令,同時for的循環裡面還可以套用for再進行循環。
舉例:
for %%c in (*.bat*.txt)
do type %%c
含義:如果以.bat或.txt結尾的文件,則顯示文件的內容。
2. 路由器ping 命令
Repeat count[5]
路由器連續PING這個地址5次 (這是路由器默認的次數,一般PCjiqi是4次)
Datapram Size[100]
這個是每次PING包的位元組數,數據大小---為100位元組
Timeout in seconds[2]
超時時限為2秒,默認的每個試探的數據包2秒內沒有回應就超時
Extended Commands[n]
PING命令的擴展內容,N表示沒有。在路由器上PING的方式可以是擴展PING
Sweep range of size[n]
PING的路由方向,N表示未設置。
從這幾條來說,樓主的PING的時候只是使用了普通的 PING+目的地址。
本端和對方連段連接沒有建立起來
3. cmd指令有哪些
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 將 c 作為定界符啟動延緩環境變數擴展。如: /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),就會使用目錄完成。
將引號將相符路徑括起來,完成代碼可以正確處理含有空格
或其它特殊字元的文件名。同時,如果備份,然後從行內調用
文件完成,完成被調用是位於游標右方的文字會被丟棄。
4. CMD里命令擴展指的是什麼
CMD
/E:ON 啟用命令擴展
/E:OFF 停用命令擴展
命令擴展是按默認值啟用的。您也可以使用 /E:OFF,為某一特定調用而停用擴展。您可以在機器上和/或用戶登錄會話上啟用或停用 CMD.EXE 所有調用的擴展,這要通過設置使用REGEDT32.EXE 的注冊表中的一個或兩個 REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command rocessor\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