閱讀下面文字需要一定的dos基礎概念,象:盤符、文件、目錄(文件夾)、子目錄、根目錄、當前目錄
每個命令的完整說明請加 /? 參數參考微軟的幫助文檔可以看到,在 /? 幫助里,"命令擴展名"一詞會經常出現"命令擴展名"是指相對於win98的dos版本而言,每個命令新增的功能命令測試環境win2000proSP4win98的命令功能太少,就不作研究了。
注:如果對某一命令還不是很熟悉,可以在命令行窗口下輸入:命令名/?的方式來獲得幫助。
例如:對dir命令的應用不熟悉,可以在命令行窗口下輸入:dir /?
echo 和 @回顯控制命令
@ #關閉單行回顯
echo off #從下一行開始關閉回顯
@echo off #從本行開始關閉回顯。一般批處理第一行都是這個
echo on #從下一行開始打開回顯
echo #顯示當前是 echo off 狀態還是 echo on 狀態
echo. #輸出一個"回車換行",一般就是指空白行
echo hello world #輸出hello world
"關閉回顯"是指運行批處理文件時,不顯示文件里的每條命令,只顯示運行結果批處理開始和結束時,系統都會自動打開
用echo輸出空行至少有十種方法:
echo=
echo,
echo;
echo+
echo/
echo[
echo]
echo:
echo.
echo\
這十種方法可以分為三組,每組的效率依次遞減。可悲的是,那些被奉為經典的教程給出的卻是效率最低那組中的echo.
dir #顯示當前目錄中的文件和子目錄
dir /a #顯示當前目錄中的文件和子目錄,包括隱藏文件和系統文件
dir c: /a:d #顯示 C 盤當前目錄中的目錄
dir c:/ /a:-d #顯示 C 盤根目錄中的文件
dir d:/mp3 /b/p #逐屏顯示 d:/mp3 目錄里的文件,只顯示文件名,不顯示時間和大小
dir *.exe /s #顯示當前目錄和子目錄里所有的.exe文件其中 * 是通配符,代表所有的文件名,還一個通配符 ? 代表一個 #任意字母或漢字如 c*.* 代表以 c 開頭的所有文件?.exe 代表所有文件名是一個字母的.exe文件如果指定的目錄或文件
#不存在,將返回 errorlevel 為1;
# 每個文件夾的 dir 輸出都會有2個子目錄 . 和 ... 代表當前目錄.. 代表當前目錄的上級目錄
dir . #顯示當前目錄中的文件和子目錄
dir .. #顯示當前目錄的上級目錄中的文件和子目錄
4、
設置字體顏色和窗體大小:
設置字體顏色:COLOR 02 (0代表背景色,2代表前景色)
常用的顏色有以下值:0 黑色,1藍色,2 綠色,3 淺綠色,4紅色,5紫色,6黃色,7白色,8灰色,9淺藍,A淺綠,B淺藍色,C淺紅色,D淺紫色,E淺黃色,F亮白色)。
設置窗體大小:MODE CON: COLS=寬度 LINES=高度
5.創建文件夾: md D:\mybat //將在D盤下創建一個名為 mybat的文件夾
6.刪除文件夾: rd D:\mybat //將刪除D盤中的mybat文件夾刪除
7.刪除文件夾中的文件: del D:\mybat\sheepmu.txt //刪除文件sheepmu.txt
del D:\mybat\sheepmu.txt /q //安靜模式刪除,即刪除時不彈出是否刪除的提示框
8.復制文件 : xcopy D:\mybat\sheepmu.txt D:\mybat1 //若D中無mybat1這個文件夾則會創建文件夾再復制
9.向文件中寫入內容: echo sheepmu >> D:\mybat\sheepmu.txt //如果這個文件不存在就創建文件並輸入。如果是文件夾不存在就不會成功!
>>與>的區別是
>是覆蓋掉原來 的;>>是直接輸入到原來的尾部
10.顯示文件中內容: type D:\mybat\sheepmu.txt
11.更改文件名后綴: ren D:\mybat\*.txt *.html
注意事項
a.批處理腳本編寫時最好的老師就是小黑老師啦,打開命令行窗口,輸入命令加上/?就會有詳細的說明,比如: netstat /?
b.pause 命令可以方便我們查看命令執行到了那一步,因為在bat腳本運行時若出現腳本錯誤窗口會一閃而過。
c.批處理執行過程中可以按 Ctrl+C退出,這對於出現死循環時非常有用。
d.cmd中的編碼方式為ANSI,若中文不是此編碼方式則會出現亂碼。所以我們的bat文件在編碼的時候應選擇“ANSI”
特殊命令
if goto choice for是批處理文件中比較高級的命令,如果這幾個你用得很熟練,你就是批處理文件的專家啦。
一、if 是條件語句,用來判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
1、if [not] "參數" == "字符串" 待執行的命令
參數如果等於(not表示不等,下同)指定的字符串,則條件成立,運行命令,否則運行下一句。
例:if "%1"=="a" format a:
2、if [not] exist [路徑\]文件名 待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。
如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,則顯示它的內容。
3、if errorlevel <數字> 待執行的命令
很多DOS程序在運行結束后會返回一個數字值用來表示程序運行的結果(或者狀態),通過if errorlevel命令可以判斷程序的返回值,根據不同的返回值來決定執行不同的命令(返回值必須按照從大到小的順序排列)。如果返回值等於指定的數字,則條件成立,運行命令,否則運行下一句。
如if errorlevel 2 goto x2
二、goto 批處理文件運行到這里將跳到goto所指定的標號(標號即label,標號用:后跟標准字符串來定義)處,goto語句一般與if配合使用,根據不同的條件來執行不同的命令組。
如:
goto end
:end
echo this is the end
標號用“:字符串”來定義,標號所在行不被執行。
三、choice 使用此命令可以讓用戶輸入一個字符(用於選擇),從而根據用戶的選擇返回不同的errorlevel,然后於if errorlevel配合,根據用戶的選擇運行不同的命令。
注意:choice命令為DOS或者Windows系統提供的外部命令,不同版本的choice命令語法會稍有不同,請用choice /?查看用法。
choice的命令語法(該語法為Windows 2003中choice命令的語法,其它版本的choice的命令語法與此大同小異):
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
描述:
該工具允許用戶從選擇列表選擇一個項目並返回所選項目的索引。
參數列表:
/C choices 指定要創建的選項列表。默認列表是 "YN"。
/N 在提示符中隱藏選項列表。提示前面的消息得到顯示,
選項依舊處於啟用狀態。
/CS 允許選擇分大小寫的選項。在默認情況下,這個工具
是不分大小寫的。
/T timeout 做出默認選擇之前,暫停的秒數。可接受的值是從 0
到 9999。如果指定了 0,就不會有暫停,默認選項
會得到選擇。
/D choice 在 nnnn 秒之后指定默認選項。字符必須在用 /C 選
項指定的一組選擇中; 同時,必須用 /T 指定 nnnn。
/M text 指定提示之前要顯示的消息。如果沒有指定,工具只
顯示提示。
/? 顯示幫助消息。
注意:
ERRORLEVEL 環境變量被設置為從選擇集選擇的鍵索引。列出的第一個選
擇返回 1,第二個選擇返回 2,等等。如果用戶按的鍵不是有效的選擇,
該工具會發出警告響聲。如果該工具檢測到錯誤狀態,它會返回 255 的
ERRORLEVEL 值。如果用戶按 Ctrl+Break 或 Ctrl+C 鍵,該工具會返回 0
的 ERRORLEVEL 值。在一個批程序中使用 ERRORLEVEL 參數時,將參數降
序排列。
示例:
CHOICE /?
CHOICE /C YNC /M "確認請按 Y,否請按 N,或者取消請按 C。"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "選項 1 請選擇 a,選項 2 請選擇 b。"
CHOICE /C ab /N /M "選項 1 請選擇 a,選項 2 請選擇 b。"
如果我運行命令:CHOICE /C YNC /M "確認請按 Y,否請按 N,或者取消請按 C。"
屏幕上會顯示:
確認請按 Y,否請按 N,或者取消請按 C。 [Y,N,C]?