程式設計修煉之bat指令碼教程

2021-10-08 15:40:32 字數 4437 閱讀 3540

批處理檔案包含了大量的基本dos命令,是一種可執行檔案。該檔案執行時能按照其規則將其中的命令逐一執行。使用批處理檔案進行的批量的命令處理的過程,稱之為批處理。

dir    列檔名

cd    改變當前目錄

ren    改變檔名

copy   拷貝檔案

del    刪除檔案

md    建立子目錄

rd    刪除目錄

deltree  刪除目錄樹

format  格式化磁碟

edit   文字編輯

type   顯示檔案內容

mem    檢視記憶體狀況

以下是新增加的命令

help   顯示幫助提示

cls    清屏

move   移動檔案,改目錄名

more   分屏顯示

xcopy   拷貝目錄和檔案

echo 用法的解釋。echo on 用於開啟命令的回顯;echo off 用於關閉命令的回顯(預設情況下,ehco 是處於開啟狀態的)。只輸入 echo 可以獲得當前的回顯狀態(是否處於開啟狀態)。輸入 echo 再加一段文字,例如 echo hello world! 可以顯示出 hello world! 這句資訊。

>echo hello

hello

@ ,如果在某一條命令最前面加上 @ ,那麼這一行命令就不會顯示出來。與 echo off 有著相似之處。 echo off 以後的所有命令本身都不再顯示出來;而 @ 只是將當前那一行的命令不顯示出來。然而,至於命令所產生的輸出結果,仍然會顯示出來。

> 表示將輸出結果列印到某處。比如:echo hello world!>d:\a.txt 表示將 hello world! 這句話寫入到 d:\a.txt 檔案中。如果以前該檔案中已經存在,並且有自己的內容,那麼以前的內容就被覆蓋掉了。比如我們再輸入:echo yo, whats up>d:\a.txt ,那麼檔案 a.txt 中以前的 hello world! 就變成了現在的新例句。

>> 與 > 類似,也可以將輸出結果列印到某處。比如我們用 echo nothin much, and u?>>d:\a.txt 將例句寫到 a.txt 裡時,該例句並不會覆蓋原有的 yo, whats up 這句話,而是加在了原句的後面。

如果一條命令後面跟上 >nul ,比如 pause>nul 表示將 pause 這條命令的輸出顯示到空裝置裡, nul 表示為空。用了 pause>nul 這條命令後,"按任意鍵繼續…"的提示就不再出現了。

對比 echo off、@ 和 >nul 。echo off 表示這以後的所有命令的本身不再顯示了,直到後面有 echo on 的出現。而加在命令列前面的 @ 只是讓當前這一行命令不顯示。加在命令列後面的 >nul 卻可以讓該命令的輸出不顯示。

title 後面跟字串可以改變當前命令提示符的標題名稱。輸入 title 這是新標題 後,該命令提示符左上角的標題名稱已經變為"這是新標題"了。輸入中文可以通過 ctrl+空格 切換出中文輸入法;也可以通過複製貼上的方式輸入。

prompt ,這就是命令提示符中所謂的"提示符"了。在命令提示符中輸入 prompt 加一段文字能夠使得提示符不再是以傳統的路徑名和大於號組成的,而是以我們剛才輸入的那段文字開頭的。

set 跟上變數,再用等號 = 跟上字串就能簡單地給該變數賦值了。例如 set var=hello world! 。為了確認一下變數 var 的值是否是 hello world! ,可以用 set var 來檢視變數 var 的值。用 set v 可以檢視所有以字母 v 開頭變數的值。直接輸入 set 可以檢視所有變數的值。另外,變數兩側加上百分符號 % 用來表示該變數的值(內容)。這樣做可以將該變數的值賦給其他變數或是用做計算顯示等處理。

>set a

allusersprofile=c:\programdata

輸入的命令    結果    效果                   

echo %var%

1234567890 顯示所有                 

echo %var:~4

%567890   從第4個字元以後開始顯示         

echo %var:~4

,3%567     從第4個字元以後開始顯示,並只顯示前3個  

echo %var:~-

4%7890    從倒數第4個字元開始顯示         

echo %var:~-

4,3%

789     從倒數第4個字元開始顯示,並只顯示前3個  

echo %var:~4

,-2%

5678    從第4個字元以後開始顯示,顯示到還剩2個為止

echo %var:~0

,3%123     從頭開始顯示,並只顯示前3個字元     

echo %var:~0

,-3%

1234567   從頭開始顯示,顯示到還剩3個字元為止

對於bat檔案後接的引數:

%0 代表bat檔名

%1 代表第乙個引數

%2 代表第二個引數

%2 代表第二個引數

%~1 第乙個引數,除去雙引號

%~2 第二個引數,除去雙引號

%* 代表所有引數

if

if

"%time:~0,2%" lss "12"

(echo 現在是上午

)else

(echo 現在是下午

)

此外,if 還有其他的用法—— if exist 和 if defined 。if exist 可判斷檔案是否存在,就像這樣:

if exist "d:\test my folder\a.txt"

(del "d:\test my folder\a.txt"

)else

(echo 您所要刪除的檔案不存在

)

@echo off

setlocal enabledelayedexpansion

set /a num=

1for

%%i in (d:\test\*

.txt)do(

ren "%%i"

!num!

.txt

set /a num+=

1)

%%i ,上一節中提到過,在批處理檔案中需要用連續的兩個百分號 %% 來描述迴圈變數 i ,而不是乙個。

使用了 setlocal enabledelayedexpansion 後,可以讓 for 或 if 後面的執行語句中變數的值隨其變化而不斷更新(所以後面使用了 !num! 而不是 %num%)。

for /l %i in (5,3,16) do echo %i ,可以讓數值型的變數 i 依次成為:5、8、11、14 。

& 、&& 和 || 是一類用於兩個或多個命令語句之間起銜接作用的符號。這對於我們想一次性執行兩條或多條命令,以及前面命令執行結果的成功與否作為後面命令是否被執行的衡量標準,起著決定性的作用。

netstat /a /n | find "7626"

&& echo 已被冰河感染 || echo 未被冰河感染

命令格式:

start [「title」] [/d path] [/i] [/min] [/max] [/separate | /shared]

[/low | /normal | /high | /realtime | /abovenormal | /belownormal]

[/affinity ] [/wait] [/b] [command/program]

[parameters]

「title」 在視窗標題欄中顯示的標題。

path 啟動目錄。

b 啟動應用程式,但不建立新視窗。應用程式已忽略 ^c 處理。除非應用程式啟用 ^c 處理,否則 ^break 是唯一可以中斷該應用程式的方式。

i 新的環境將是傳遞給 cmd.exe 的原始環境,而不是當前環境。

min 以最小化方式啟動視窗。

max 以最大化方式啟動視窗。

separate 在單獨的記憶體空間中啟動 16 位 windows 程式。

shared 在共享記憶體空間中啟動 16 位 windows 程式。

low 在 idle 優先順序類中啟動應用程式。

normal 在 normal 優先順序類中啟動應用程式。

high 在 high 優先順序類中啟動應用程式。

realtime 在 realtime 優先順序類中啟動應用程式。

abovenormal 在 abovenormal 優先順序類中啟動應用程式。

belownormal 在 belownormal 優先順序類中啟動應用程式。

affinity 新應用程式將具有指定的處理器關聯掩碼,用十六進製制數字表示。

wait 啟動應用程式並等待它終止。

BAT 批處理指令碼教程 四

批處理中的變數 批處理中的變數,我把他分為兩類,分別為 系統變數 和 自定義變數 我們現在來詳解這兩個變數 一 系統變數 他們的值由系統將其根據事先定義的條件自動賦值,也就是這些變數系統已經給他們定義了值,不需要我們來給他賦值,我們只需要呼叫而以 我把他們全部列出來 這麼多系統變數,我們如何知道他的...

bat批處理指令碼程式設計

1 宣告變數 注意 前後不要留空格。隨便說一下,在bat中,連續兩個冒號表示注釋 set var1 test 如果要引用這個變數的話,可以這樣寫 var1 2 echo off on echo off 表示關閉echo列印命令 echo on表示開啟echo列印命令 舉例 echo hello wo...

程式設計修煉之Phoenix

官網phoenix 基於hbase給面向業務的開發人員提供了以標準sql的方式對hbase進行查詢操作,並支援標準sql中大部分特性 條件運算,分組,分頁,等高階查詢語法。和hbase協作並不會降低效能,且減少很多 hbase與phoenix的對應關係 hbase phoenix namespace...