批處理----學習

abcbbc發表於2007-05-20

批處理的常見命令

REM
ECHO
GOTO
CALL
PAUSE
IF

如何製作批處理檔案

符號主要有以下幾個

1. @
2. >
3. >>
4. |
5. ^
6. &
7. &&
8. ""
9. ,
10. ;

con 是dos 裝置檔案的簡稱。 在dos中把很多外部裝置作為檔案,稱為裝置檔案。dos中這樣規定的:con 控制檯(鍵盤/顯示器) aux (或com1)第一個串列埠 lpt1 第一個並行印表機介面,nul 不存在的裝置
所以,舉例說明:
copy con abc.txt
這條命令的意思就是從鍵盤中把輸入的文字複製到檔案abc.txt中去,所以輸入命令後,在輸入字元,結束時按下
ctrl+z.你輸入的文字就會儲存到abc.txt這個檔案裡了。
而如果你輸入的是
copy abc.txt con
計算機則會把abc.txt中的文字複製到螢幕上,也就是顯示出來。

[@more@]

批處理的常見命令

REM
ECHO
GOTO
CALL
PAUSE
IF

還有(FOR,SETLOCAL,SHIFT)基於這幾個命令比較難,不適合放在一日一動畫裡


批處理定義:顧名思義,批處理檔案是將一系列命令按一定的順序集合為一個可執行的文字檔案,其副檔名為BAT。
這些命令統稱批處理命令。

介紹命令

1、REM

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

例:REM 這個命令就是註釋

這一句將不會被執行

2、ECHO

ECHO是一個回顯命令,主要引數有OFF和ON。一般用ECHO MESSAGE來顯示一個特定的訊息。

例:
Echo off
Rem 以上代表關閉回顯(就是不顯示所執行的命令)
Echo 這個就是訊息(message)
Rem 以上代表顯示“這就是訊息(message)”這列字元

我們們來看看執行結果:


3、GOTO

GOTO會點程式設計的朋友就會知道這是跳轉的意思。
在批處理中允許以“:XXX”來構建一個標號,然後用GOTO XXX直接來執行標號後的命令。

例:

: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
:0
echo 命令執行成功!
Rem 程式執行完畢跳至標題exit處退出
goto exit
:1
echo 命令執行失敗!
Rem 程式執行完畢跳至標題exit處退出
goto exit
:exit
Rem 這裡是程式的出口

(2)IF string1==string2 command
檢測當前變數的值做出判斷

ECHO OFF
IF %1==2 goto no
Echo 變數相等!
goto exit
:no
echo 變數不相等
goto exit
:exit

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

(3)IF [NOT] EXIST filename command
發現特定的檔案做出判斷

echo off
IF not EXIST autoexec.bat goto 1
echo 檔案存在成功!
goto exit
:1
echo 檔案不存在失敗!
goto exit
:exit

這個批處理大家可以放在C盤和D盤分別執行,

製作批處理的方法有三種

第一種就是在WIN介面操作

首先我們們先建立個TXT文字檔案,然後把命令打進去,最後把他的副檔名改為BAT就可以了

有些人的電腦沒有顯示副檔名,怎麼辦呢?好辦在資料夾選項裡改把“隱藏檔案的副檔名”這個選項勾掉就可以了

第二種方法是在DOS中建立

有些時候我們得到的只是TELNET的SHELL,如何在這裡製造批處理成了麻煩

沒關係,今天來介紹COPY命令,COPY不是複製的意思嗎?怎麼還能製造批處理檔案

就是這麼決,來看看吧

copy con 1.bat
dir C:
^Z

這樣就做好了一個批處理檔案

第三種方法也是在DOS下操作的

是用ECHO命令

echo dir c: >1.bat
echo dir d: >>1.bat
echo dir e: >>1.bat

一、 @

這個字元在批處理中的意思是關閉當前行的回顯。我們從前幾課知道
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:


當然還有一些特殊符號,但使用範圍很小,我就沒在這說,呵呵

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/219138/viewspace-915704/,如需轉載,請註明出處,否則將追究法律責任。