Windows批處理(二)

2021-09-20 06:10:14 字數 1683 閱讀 4319

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

) else (

goto create

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 (

) else (

goto create

echo %content% > %filename%

:create

echo %content% >> %filename%

Windows批處理命令總結(二)

執行批處理程式中的條件處理。if not errorlevel number command if not string1 string2 command if not exist filename command not 指定只有條件為 false 的情況下,windows 才應該執行該命令。er...

原 Windows批處理命令學習二

繼續學習windows批處理命令。批處理檔案引數 有點程式設計基礎的人都知道函式有引數 批處理檔案也有引數。批處理檔案還可以像c語言的函式一樣使用引數 相當於dos命令的命令列引數 這需要用到乙個引數表示符 1 9 表示引數,引數是指在執行批處理檔案時在檔名後加的以空格 或者tab 分隔的字串。變數...

Windows批處理(一)

批處理是一系列可執行的命令集合揉成的乙個檔案,有點類似於日常開發中的乙個類。window平台下批處理副檔名一般為bat或者cmd 先介紹幾個簡單的命令 這是注釋命令,和開發中的 效果是一樣的,都是單行注釋。有效標號 冒號後面跟乙個變數字串,一般用於goto語句的跳轉。例如 functiona 和 a...