前一篇我們差不多就講了一個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%