Windows批處理(二)

前一篇我們差不多就講了一個hello world難度的腳本,現在我們來新學三個平常一定會用到的概念。變量、條件分支判斷和跳轉

 

①:變量

在bat腳本中,變量是特別常用的。我們可以這麼申明一個變量。

set param=hello

set "param=hello world"

set "parm=a^&b"

解釋:申明變量時等於號一定要靠左邊寫,中間不能有空格。右邊如果有空格表示將空格也賦值給這個變量;對於字符串中有空格的建議還是加上引號;如果賦值中有特殊字符(<>|&^等)必須用引號包着變量名和值,然後在特殊字符前加^轉義。

變量的引用,使用%將變量包起來 比如

set num=1

echo %num%

變量這部分就講這些基礎的吧,還有很多別的用法我們後面用到再說。

 

②:條件判斷與分支語句

平常我們寫代碼的時候分支用的最多的就是if/else了,今天我們就講這個吧。

if主要用兩種判斷:結果判斷和存在判斷

結果判斷:可以用來判斷變量值

if %num%==1 echo 相等

存在判斷:比如判斷某個文件或者目錄是否存在

if exist D:\software\script\bat\test echo 存在

如果有分支

if %num%==1 (

echo 相等

) else (

echo 不相等

)

如果在分支中存在重新對變量賦值和判斷的情況,可能需要延遲變量環境擴展。這部分後續會介紹,這個地方暫時不考慮。

 

③:跳轉

跳轉這個就有點意思了,程序遇到goto的時候就會跳轉到goto標籤定義的部分執行。和我們定義了方法然後在別處調用時一樣的。

定義一個標籤我們使用冒號加一個標籤名稱

.....goto functionA

.....

:functionA

當執行到goto functionA的時候會跳轉到:functionA處繼續執行,goto和標籤是一一對應的。

下面來看個和if標籤組合的例子。

set filename=test.txt

set content=aaaaaaaa

if exist test.txt (

goto append

) else (

goto create

)

:append

echo %content% > %filename%

 

:create

echo %content% >> %filename%

 

 

今天就講這麼多了,我們來總結下今天的腳本

::變量賦值

@echo off

set "num=a^&b"

set num=2

echo %num%

pause

::條件分支

if %num%==1 (

echo 相等

) else (

echo 不相等

)

if exist D:\software\script\bat\test echo 存在

pause

::條件分支和跳轉的組合

set filename=test.txt

set content=aaaaaaaa

if exist test.txt (

goto append

) else (

goto create

)

:append

echo %content% > %filename%

 

:create

echo %content% >> %filename%

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章