批處理bat程式設計詳解

2021-08-08 17:27:04 字數 5795 閱讀 8673

批處理語法,bat語法

批處理就是把一批或者說是一條條命令放在乙個文字裡,然後批量執行!執行這

一批命令的檔案的副檔名是bat檔案或者cmd,把任何一批命令放入在有這樣副檔名的檔案裡,執行時裡面的命令就會一條條的執行完,當然

我們還可以在其中加入一些邏輯判斷的語句,讓裡面的命令在滿足一定條件時執行指定的命令.

了解了大概意思後,我們正式開始學習.先看乙個簡單的例子!

@echo off

echo "歡迎來到非常bat!"

pause

把上面的3條命令儲存為test.bat或者然後執行,他就會在螢幕上顯示二行話:"歡迎來到非常bat!請按任意鍵繼續. . ."

這就是乙個簡單批處理檔案了,我們來分析一下.

這個批處理檔案一共就用了2條命令 "echo" 和"pause" 還有乙個特殊符號"@"

@符號在批處理中的作用是關閉當前行命令的回顯,也就是不顯示執行的是什麼命令,只顯示命令的結果!

你可以執行下面這個批處理檔案來理解,儲存為*.bat或者*.cmd

@echo 你好

echo 你好

@pause

echo命令的作用有兩個,乙個是在cmd上回顯一行內容.如:echo "歡迎來到非常bat!",還乙個是關閉命令的回顯:echo off

echo off的作用就相當於在每條命令前面加乙個@符號,這樣所有的命令將只會顯示結果不顯示命令.

我們在echo off這命令前加乙個@符號是為了不讓echo off這條命令本身顯示出來,讓批處理更完美!

pause命令就是暫停的意思,防止批處理執行完後直接退出!執行pause命令後會自動在cmd裡顯示"請按任意鍵繼續. . ."這樣一行話!

從上面這個簡單的批處理中,我們可以發現其實批處理就是運用一些含有特殊意義的符號和一些完成指定功能的命令組合而成,那麼

在批處理中有多少這樣的特殊符號和功能命令呢?我們現在就來仔細了解一下一些最常用的!

(以下內容**網路,請各位仔細閱讀,好進入下節的例項說明)

批處理的常見命令

remecho

goto

call

pause

if還有(for,setlocal,shift)這幾個命令比較難,不適合寫在基礎篇,以後說明!

批處理定義:顧名思義,批處理檔案是將一系列命令按一定的順序集合為乙個可執行的文字檔案,其擴充套件名為bat。

這些命令統稱批處理命令。

介紹命令

1、rem (remark)

rem是個注釋命令,一般用來給程式加上註解,該命令後的內容在程式執行時,將不會被顯示和執行。

例:rem 這個命令就是注釋

這一句將不會被執行

2、echo

echo是乙個回顯命令,主要引數有off和on。一般用echo message來顯示乙個特定的訊息。

例:echo off

rem 以上代表關閉回顯(就是不顯示所執行的命令)

echo 這個就是訊息(message)

rem 以上代表顯示「這就是訊息(message)」這列字元

咱們來看看執行結果:

3、goto

goto會點程式設計的朋友就會知道這是跳轉的意思。

在批處理中允許以「:***」來構建乙個標號,然後用goto ***直接來執行標號後的命令。

例::lable

rem 上面就是名為label的標號

dir c:\

dir d:\

goto lable

rem 以上程式跳轉標號label處繼續執行

咱們來看看結果:

4、call

call命令可以在批處理執行過程中呼叫另乙個批處理,當另乙個批處理執行完後,再繼續執行原來的批處理

例:建立乙個2.bat,內容如下

echo 這就是2的內容

建立乙個1.bat,內容如下

echo 這是1的內容

call 2.bat

echo 1和2的內容全部顯示完成。

執行1.bat,來看看結果:

5、pause

pause,玩遊戲的人都知道,暫停的意思

在這裡就是停止系統命令的執行並顯示下面的內容。

例:pause

6、if

if 條件判斷語句,語法格式如下:

if [not] errorlevel number command

if [not] string1==string2 command

if [not] exist filename command

解釋下:

[not]:將返回結果取反值,就是「如果沒有」的意思

errorlevel:

是命令執行完成後返回的退出值

number:

退出值的數字取值範圍0~255,判斷時值的排列順序應該由大到小。返回的值大於等於指定的值時,條件成立

string1==string2:

string1和string2都為字元的資料,英文內字元的大小寫將看作不同,這個條件中的等於號必須是兩個(絕對相等的意思)

條件相等後即執行後面的command

exist filename:

為檔案或目錄存在的意思

if errorlevel這個句子必須放在某乙個命令的後面,執行命令後由if errorlevel 來判斷命令的返回值。

例:(1)

if [not] errorlevel number command

檢測命令執行完後的返回值做出判斷

echo off

dir z:

rem 如果退出**為1(不成功)就跳至標題1處執行

if errorlevel 1 goto 1

rem 如果退出**為0(成功)就跳至標題0處執行

if errorlevel 0 goto 0

:0echo 命令執行成功!

rem 程式執行完畢跳至標題exit處退出

goto exit

:1echo 命令執行失敗!

rem 程式執行完畢跳至標題exit處退出

goto exit

:exit

rem 這裡是程式的出口

(2)if string1==string2 command

檢測當前變數的值做出判斷

echo off

if 1==2 goto no

echo 變數相等!

goto exit

:noecho 變數不相等

goto exit

:exit

看看效果,敲擊這個命令1.bat 數字

(3)if [not] exist filename command

發現特定的檔案做出判斷

echo off

if not exist autoexec.bat goto 1

echo 檔案存在成功!

goto exit

:1echo 檔案不存在失敗!

goto exit

:exit

這個批處理大家可以放在c盤和d盤分別執行,看看效果

特殊符號:

1. @

2. >

3. >>

4. |

5. ^

6. &

7. &&

8. ""

9. ,

10. ;

廢話少說,開講了

一、 @

這個字元在批處理中的意思是關閉當前行的回顯。我們從前幾課知道

echo off可以關閉掉整個批處理命令的回顯,但不能關掉echo off這個命令,現在我們在echo off這個命令前加個@,就可以達到所

有命令均不回顯的要求

1.bat

echo off

dir d:\

2.bat

@echo off

dir d:\

二、 >

這個字元的意思是傳遞並且覆蓋,他所起的作用是將執行的回顯結果傳遞到後面的範圍(後邊可以是檔案,也可以是預設的系統控

制台)比如:

檔案1.txt 的檔案內容是:

1+1使用命令:dir *.txt >1.txt

這時候1.txt 內容如下

驅動器 c 中的卷沒有標籤。

卷的序列號是 3827-1bdd

c:\ 的目錄

2004-05-25 00:57 17,755,907 log.txt

2004-05-26 15:21 3 1.txt

2004-05-26 15:21 0 2.txt

3 個檔案 17,755,910 位元組

0 個目錄 339,111,936 可用位元組

三、>>

這個符號的作用和》有點類似,但他們的區別是》是傳遞並在檔案的末尾追加,而》是覆蓋

用法同上

同樣拿1.txt做例子

內容是1+1

使用命令:dir *.txt >>1.txt

咱們來看看顯示的結果如何

四、|這是乙個管道傳輸命令,意思是將上一命令執行的結果傳到下乙個命令去處理

例如:dir c:\|find "txt"

以上命令是:查詢c:\所有,並發現txt字串。

find的功能請用 find /? 自行檢視

在不使format的自動格式化引數時,我是這樣來自動格式化a盤的

echo y|format a: /s /q /v:system

用過format的都知道,再格盤時要輸入y來確認是否格盤,這個命令前加上echo y並用|字元來將echo y的結果傳給format命令

從而達到自動輸入y的目的

(這條命令有危害性,測試時請慎重)

五、^^是對特殊符號"<",">","&"的前導字元,在命令中他將以上3個符號的特殊功能去掉,僅僅只把他們當成符號而不使用他們的特殊意

義。比如

echo test ^>1.txt

結果則是

他沒有追加在1.txt裡,呵呵。只是顯示了出來

六、 &

這個符號允許在一行中使用2個以上不同的命令,當第乙個命令執行失敗了,也不影響後邊的命令執行。

比如:dir z:\ & dir y:\ & dir c:\

以上命令會連續顯示z,y,c盤的內容,不理會該盤是否存在

七、 &&

這個命令和上邊的類似,但區別是,第乙個命令失敗時,後邊的命令也不會執行

dir z:\ && dir y:\ && dir c:\

八、""

雙引號允許在字串中包含空格,進入乙個特殊目錄可以用如下方法

cd "program files"

cd progra~1

cd pro*

以上三種方法都可以進入program files這個目錄

九、,逗號相當於空格,在某些情況下「,」可以用來當做空格使

比如dir,c:\

十、;分號,當命令相同時,可以將不同目標用;來隔離,但執行效果不變,如執行過程中發生錯誤,則只返回錯誤報告,但程式還是會

執行。比如:

dir c:\;d:\e:\;f:\

以上命令相當於

dir c:\

dir d:\

dir e:\

dir f:\

第二節(for命令詳解)

看了看第一節的東西,發現那些簡單的命令都有詳細解釋,實在想不出什麼更好的東西來解釋他們,就直接來乙個"for命令詳解"在其中運用這些東西來解釋吧!

講for之前呢,咋先告訴各位新手朋友,如果你有什麼命令不懂,直接在cmd下面輸入:

name /? 這樣的格式來看系統給出的幫助檔案,比如for /? 就會把for命令的幫助全部顯示出來!

當然許多菜鳥同志都看不懂....所以才會有那麼多批處理文章!!!!俺也照顧菜鳥,把for命令用我自己的方式說明下!

BAT程式設計命令詳解

本文為cmd,bat下的程式語言流程,希望各位能用的上 如果沒有一定的相關知識恐怕不容易看懂和理解批處理檔案,也就更談不上自己動手編寫了 批處理檔案是無格式的文字檔案,它包含一條或多條命令。它的擴充套件名為 bat 或 cmd。在命令提示下鍵入批處理檔案的名稱,或者雙擊該批處理檔案,系統就會呼叫cm...

bat批處理命令大全1234

從簡單學起 echo call pause rem 是批處理檔案最常用的幾個命令,我們就從他們開始學起。echo 表示顯示此命令後的字元 echo off 表示在此語句後所有執行的命令都不顯示命令列本身 與echo off相象,但它是加在其它命令列的最前面,表示執行時不顯示命令列本身。call 呼叫...

dos批處理命令詳解

4.rem 命令 注釋命令,在c語言中相當與它並不會被執行,只是起乙個注釋的作用,便於別人閱讀和你 自己日後修改。rem message sample rem here is the description.5.pause 命令 執行 pause 命令時,將顯示下面的訊息 press any key...