技巧:每周學習一點測試知識——bat批處理命令
關注Mango,努力學習,天天進步~
今天Mango就跟大家介紹(tu)介紹(cao)bat批處理命令~
批處理文件,顧名思義,就是將一系列命令按照一定的順序集合成一個可執行的文本文件,擴展名為BAT或CMD。 這些命令統稱為批處理命令。
首先給大家簡單介紹一下我們常用的命令:
1. 雷姆和::
rem是注釋命令,一般用于給腳本添加注釋。 rem命令后,內容不會執行,但可以回顯。
::也可以作為注釋,看起來更簡潔明了,類似于其他語言的注釋服務,只是::后面的命令不會被回顯。 (這里需要注意的是,在批處理腳本中,:被視為一個標記,當:后面是一個以字母開頭的字符串時,可以被goto語句識別。如果后面是一個特殊符號,則不是一個字母,goto語句不能識別,即可以起到注解的作用)
例子:
雷姆這是一個注釋
:: 這是一個注釋
2.回聲和@
echo 命令可用于顯示消息,以及打開或關閉回顯。
顯示消息:
回聲世界你好!
要打開或關閉回顯:
回聲開/關
在命令前加上@字符可以關閉這條命令的回顯,無論此時回顯功能是關閉還是打開。 所以我們經??梢栽赽at腳本的第一行看到@echo off,這樣整個腳本的命令就不會被回顯了。
3. 暫停
暫停就是暫停的意思。 顧名思義,該命令表示系統停止執行以下命令。 示例:暫停
運行時會顯示:
請按任意鍵繼續。 。 。
我們經常在goto語句、if語句或for語句中看到這個命令。
4. 轉到
goto是跳轉的意思,在bat腳本中我們使用":label"建立一個label,然后使用"goto label"跳轉到":label"(這里label作為指定批處理程序文字串中的標簽) ,標簽必須獨占一行。 例子:
@回聲關閉
if "%1"=="A" (轉到 A)否則轉到 B
:A
echo 您輸入的字母是:A
暫停
出口
:乙
echo 您輸入的字母是:B
暫停
出口
5. 打電話
call命令可以從一個批處理程序中調用另一個批處理程序,執行完后再執行原來的批處理過程。 命令格式:
調用 [驅動器:] [路徑] [批處理-]
[drive:][path] 指定要調用的批處理程序的位置和名稱,必須是擴展名為.bat 或.cmd 的文件。 batch - 指定批處理程序的參數項。
例子:
測試1.bat:
調用 test2.bat AB
回聲C
測試2.bat:
回顯 %1
回顯 %2
顯示的結果應該是
A
乙
C
6.開始
start命令用于調用外部程序,所有的DOS命令和命令程序都可以通過start命令來調用。 外部程序將在新窗口中運行,bat腳本將繼續執行,無論外部程序的運行狀態如何。
示例:啟動“C:\ Files\ \.exe”“”
7.如果
if命令執行bat腳本中的條件處理。 這里需要注意的是(這是抱怨的),解釋語句和執行語句應該放在同一行:
if判斷語句(執行語句1) else執行語句2
如果要多行輸入bat批處理調用exe程序,必須使用這種形式(對于強迫癥來說是難以忍受的),否則會報錯:
如果判斷語句(
執行語句 1
) 別的 (
執行語句 2
)
這里需要注意的是比較運算符與其他語言不同:
EQU——等于(一般用“=”)
NEQ - 不等于(沒有“!=”,使用“if not 1==1”代替)
LSS-- 小于
LEQ - 小于或等于
GTR-- 大于
GEQ - 大于或等于
例子:if "%1"=="A" (echo A) else echo B
8.為了
for 命令對一組文件中的每個文件執行特定命令。 命令格式:
對于 % in (set) do [-]
其中%是指定參數,可以用單個字母替換;
(set) 指定一個文件或一組文件,可以使用通配符;
指定對每個文件執行的命令;
- 為特定命令指定參數或命令行開關。
示例:for %%i in (1 2 3 4 5) do (echo %%i)
如果啟用命令擴展,則支持 for 命令的以下附加格式:
for /D % in (set) do [-]
如果該集合包含通配符,則指定匹配目錄名,而不是文件名。
示例:for %%d in (*.txt) do (echo %%d)
顯示當前目錄下的所有.txt文件
示例:for /D %%d in (*test*) do (echo %%d)
顯示當前目錄下所有包含test的目錄名
對于 /R [[drive:]path] % in(set) do [-]
檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的 FOR 語句。 如果 /R 之后沒有指定目錄,則使用當前目錄。 如果 set 僅是一個點 (.) 字符,則枚舉目錄樹。
示例:對于 (*.txt) 中的 /RC:\Users\ %%d do (echo %%d)
在桌面上顯示所有.txt 文件
FOR /L % IN (開始,步驟,結束)DO [-]
該集合表示從開始到結束遞增的數字序列。
示例:對于 (1,2,10) 中的 /L %%i 執行 echo %%i
將顯示 1、3、5、7、9
for /F [""] % (文件集) do [-]
for /F [""] % ("") 做 [-]
for /F [""] % ('') 做 [-]
file-set 是一個或多個文件名。 在繼續處理文件集中的下一個文件之前,每個文件都會被打開、讀取和處理。 處理包括讀取文件,將其分解為文本行bat批處理調用exe程序,然后將每行解析為零個或多個符號。 然后使用找到的符號字符串變量的值調用 for 循環。 默認情況下,/F 傳遞分隔每個文件中每一行的第一個空白字符。 跳過空行。 您可以通過指定可選的“”參數來覆蓋默認的解析操作。 該帶引號的字符串包含一個或多個指定不同解析選項的關鍵字。 這些關鍵字是:
eol=c - 指行注釋字符的結尾(只有一個)
Skip=n - 指在文件開頭忽略的行數。
=xxx - 指分隔符集。 這替換了空格和制表符的默認分隔符集。
=x,y,mn - 指的是每次迭代時將每行的哪個符號傳遞給 for 本身。 這會導致分配額外的變量名稱。 mn 格式是一個范圍。 用第 n 個表示法指定第 m 個。 如果符號字符串中的最后一個字符是星號,則在解析最后一個符號后分配一個額外的變量并接受該行的保留文本。
- 指定在反引號字符串作為命令執行并且單引號字符是文字??字符串命令的情況下使用新語法,并允許文件集中的文件名進行雙引號擴展。
示例:對于 /F "eol=; =2,3* =, " %%i in (test.txt) do @echo %%i %%j %%k
test.txt中的每一行都會被分析;
下線=; --忽略那些以分號開頭的行;
=2,3* -- 將每行中的第二個和第三個符號傳遞給 for 程序體;
= , -- 用逗號和/或空格分隔符號。
%i -- for程序體的語句引用%i獲取獲取的第一個字符串(本例中的第二個符號),引用%j獲取第二個字符串(本例中的第三個符號)引用 %k 以獲取第三個符號之后的所有剩余符號。
好了,今天的學習內容你掌握得怎么樣了?歡迎添加芒果微信與芒果討論
精益技術賦能流程
點擊右上角“...”將好文章分享給您的朋友