關於Dos命令批處理程式設計簡介

2021-06-20 04:13:52 字數 3404 閱讀 5512

用批處理命令把一些特殊的檔案按副檔名分類寫到乙份檔案裡,批處理檔案是無格式的文字檔案,它包含一條或多條命令。它的擴充套件名為 .bat 或 .cmd。在命令提示下鍵入批處理檔案的名稱,或者雙擊該批處理檔案,系統就會呼叫cmd.exe按照該檔案中各個命令出現的順序來逐個執行它們。使用批處理檔案(也被稱為批處理程式或指令碼),可以簡化日常或重複性任務,例如我們後面要提到的用批處理檔案來給系統打補丁、批量植入後門程式等。

一.簡單批處理內部命令簡介

1、echo 命令

開啟回顯或關閉請求回顯功能,或顯示訊息。如果沒有任何引數,echo 命令將顯示當前回顯設定。

語法 echo [message]

sample:@echo off / echo hello world

2、@ 命令

表示不顯示@後面的命令,在入侵過程中不讓對方看到你使用的命令。

sample:@echo off

@echo now initializing the program,please wait a minite...

@format x: /q/u/autoset (format 這個命令是不可以使用/y這個引數的,可喜的是微軟留了個autoset這個引數給我們,效果和/y是一樣的。)

3、goto 命令

指定跳轉到標籤,找到標籤後,程式將處理從下一行開始的命令。

語法:goto label (label是引數,指定所要轉向的批處理程式中的行),標籤的名字可以隨便起,但是最好是有意義的字母,字母前加個:用來表示這個字母是標籤,goto命令就是根據這個:來尋找下一步跳到到那裡。

4、rem 命令

注釋命令,在c語言中相當與/*--------*/,它並不會被執行,只是起乙個注釋的作用,便於別人閱讀和你自己日後修改。

rem message

sample:@rem here is the description.

5、pause 命令

執行 pause 命令時,將顯示下面的訊息:

press any key to continue . . .

sample:

@echo off

:begin

copy a:*.* d:\back

echo please put a new disk into driver a

pause

goto begin

在這個例子中,驅動器 a 中磁碟上的所有檔案均複製到d:\back中。顯示的注釋提示您將另一張磁碟放入驅動器 a 時,pause 命令會使程式掛起,以便您更換磁碟,然後按任意鍵繼續處理。

6、call 命令

從乙個批處理程式呼叫另乙個批處理程式,並且不終止父批處理程式。call 命令接受用作呼叫目標的標籤。如果在指令碼或批處理檔案外使用 call,它將不會在命令列起作用。

語法  call [[drive:][path] filename [batchparameters]] [:label [arguments]]

引數 [drive:}[path] filename 指定要呼叫的批處理程式的位置和名稱。filename 引數必須具有 .bat 或 .cmd 副檔名。

7、start 命令

呼叫外部程式,所有的dos命令和命令列程式都可以由start命令來呼叫。

入侵常用引數:

min 開始時視窗最小化

separate 在分開的空間內開始 16 位 windows 程式

high 在 high 優先順序類別開始應用程式

realtime 在 realtime 優先順序類別開始應用程式

wait 啟動應用程式並等候它結束

parameters 這些為傳送到命令/程式的引數

執行的應用程式是 32-位 gui 應用程式時,cmd.exe 不等應用程式終止就返回命令提示,如果在命令指令碼內執行,該新行為則不會發生。

8、choice 命令

choice 使用此命令可以讓使用者輸入乙個字元,從而執行不同的命令。使用時應該加/c:引數,c:後應寫提示可輸入的字元,之間無空格。

9、if 命令

if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:

a、if "引數" == "字串"  待執行的命令 ,引數如果等於指定的字串,則條件成立,執行命令,否則執行下一句。

b、if exist 檔名  待執行的命令,如果有指定的檔案,則條件成立,執行命令,否則執行下一句。

c、if errorlevel / if not errorlevel 數字  待執行的命令,如果返回碼等於指定的數字,則條件成立,執行命令,否則執行下一句。

10、for 命令

for  命令是乙個比較複雜的命令,主要用於引數在指定的範圍內迴圈執行命令。在批處理檔案中使用 for 命令時,指定變數請使用 %%variable

for   in (set) do command [ commandlineoptions]

%variable 指定乙個單一字母可替換的引數。

(set) 指定乙個或一組檔案。可以使用萬用字元。

command 指定對每個檔案執行的命令。

command-parameters 為特定命令指定引數或命令列開關。

在批處理檔案中使用 for 命令時,指定變數請使用 %%variable

而不要用 %variable。變數名稱是區分大小寫的,所以 %i 不同於 %i

二、如何使用組合命令(compound command)

1、&

usage:第一條命令 & 第二條命令 [& 第三條命令...]

用這種方法可以同時執行多條命令,而不管命令是否執行成功 。

2、&&

usage:第一條命令 && 第二條命令 [&& 第三條命令...]

用這種方法可以同時執行多條命令,當碰到執行出錯的命令後將不執行後面的命令,如果一直沒有出錯則一直執行完所有命令。

3、||

usage:第一條命令 || 第二條命令 [|| 第三條命令...]

用這種方法可以同時執行多條命令,當碰到執行正確的命令後將不執行後面的命令,如果沒有出現正確的命令則一直執行完所有命令。

三、管道命令的使用

1、 | 命令

usage:第一條命令 | 第二條命令 [| 第三條命令...]

將第一條命令的結果作為第二條命令的引數來使用

2、 >、>> 輸出重定向命令

將一條命令或某個程式輸出結果的重定向到特定檔案中, > 與 >>的區別在於,>會清除調原有檔案中的內容後寫入指定檔案,而》只會追加內容到指定檔案中,而不會改動其中的內容。

3、< 、>& 、<&

< 從檔案中而不是從鍵盤中讀入命令輸入。

>& 將乙個控制代碼的輸出寫入到另乙個控制代碼的輸入中。

<& 從乙個控制代碼讀取輸入並將其寫入到另乙個控制代碼輸出中。

詳細出處參考:

DOS批處理簡介(上)

文章整理自 一.簡單內部命令簡介 1.echo 命令 開啟回顯或關閉請求回顯功能,或顯示訊息。如果沒有任何引數,echo 命令將顯示當前回顯 設定。語法echo message 比如 echo off echo hello world 在實際應用中我們會把這條命令和重定向符號 也稱為管道符號,一般用...

DOS批處理簡介(上)

文章整理自 一.簡單內部命令簡介 1.echo 命令 開啟回顯或關閉請求回顯功能,或顯示訊息。如果沒有任何引數,echo 命令將顯示當前回顯 設定。語法 echo message 比如 echo off echo hello world 在實際應用中我們會把這條命令和重定向符號 也稱為管道符號,一般...

DOS批處理簡介(下)

文章參照自 二.如何在批處理檔案中使用引數 批處理中可以使用引數,一般從1 到 9 這九個,當有多個引數時需要用shift來移動,這種情況並不多見,我們就不考慮它了。比如 fomat.bat echo off if 1 a format a format format a q u auotset e...