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