.bat學習-基礎語法(常用)


一般來說,腳本或者語言都有相同地方

定義變量,輸入,輸出,判斷條件等等。知道的相同之處,我們就可以借助強大的搜索引擎進行查找我們想要知道的東西。

 

bat為批處理腳本BATCH。現在只知道是使用於windows操作系統用來執行操作的批處理腳本

 

基礎之前setlocal和endlocal

在一個bat文件內定義變量之前,一定要文件頭部調用一個命令

setlocal

設置臨時改變系統變量,,這樣我們定義或修改變量,只對本bat文件有效。

我們獲取到的系統環境變量如PATH,或者JAVA_HOME只是系統環境變量的值的拷貝,不會對原系統環境變量有任何影響

假設我們系統環境變量Path=“aa”

系統變量進行修改為Path=“aabb”

當bat文件執行完畢,

會默認調用endlocal。結束批處理文件中環境改動的本地化操作。

我們在cmd命令行中執行下面命令

echo %PATH%

輸出的還是原本的系統環境變量值

 

但是如果我們主動調用endlocal命令后,在進行PATH變量進行修改,

然后又調用call "aa.bat" start ,,如果我們在aa.bat文件中用到Path變量時,就不是我們想要的變量值aa的。

 

基礎語法

setlocal enabledelayedexpansion
設置延遲環境變量擴展,
cmd腳本會對每一行命令進行預處理,有一個變量識別過程,遇到%引用變量時,會查找這個變量的值,然后對這個變量名稱進行值替換
對於下面的預處理,會先查找到a的值為10,然后替換echo %a%,==>echo 10,這就不是我們預期的結果,
set a=10
set a=12&echo %a%
設置啟用這個選項后就可以正確輸出我們預期,需要進行一點小改動,echo %a%要改成 echo !a!

1. 定義變量

set 變量名=變量值

 

2.輸出

2.1 輸出信息到控制台

echo "字符串"

2.2 新建文件,輸出內容到文件

 ECHO 文件內容>文件名
>是將文件中內容全部替換,>>是在文件最后追加內容

 

3. 條件控制語句

if aa==AA(
    echo "is equal"
)else(
    echo "compare is not equal"
)
if exist  判斷文件是否存在
if not exist not表示相反,
也可以使用下面的equ,等來盡心操作比較

equ 等於     ==
gtr 大於     >
geq 大於或等於  >=
lss 小於     <
leq 小於或等於  <=
neq 不等於    !=

 

4 循環

for %%I in (A,B,C) do echo %%I
以逗號為分隔符,循環三次輸出
A
B
C
將逗號換為空格、跳格、逗號或等號,輸出的結果和上面都是一樣的。這些符號都是作為分割元素的符號

 

5其他常用語法

:name
//設置標簽,可以使用goto name,使程序跳到這個標簽繼續執行程序

goto
//流程跳轉語句,同上解釋

shift
//更改批處理文件中可替換參數的位置,原本最大參數%0~%9
//如果有11個參數時,需要調用shift /1 將第2個參數作為%0位置,這樣我們
//就可以獲取到第11個參數,也就是%9
//shift 如果后面不帶/n,則默認截掉第一個參數,第二個作為%0

call "xxx.bat" arguments
//在當前批處理文件中調用另一個bat文件,執行完后會回到當前文件中繼續執行操作,arguments作為執行xxx.bat文件的啟動參數

 

6其它系統變量

%CD%    //返回當前目錄路徑
%DATE%    //返回當前日期
%ERRORLEVEL%
//系統 返回上一條命令的錯誤代碼。通常用非零值表示錯誤
%NUMBER_OF_PROCESSORS%
//系統 指定安裝在計算機上的處理器的數目
%temp%=C:\Users\HELLOW~1\AppData\Local\Temp
//返回系統的臨時文件存放路徑
%~nx0 就是表示程序的名稱+擴展名
"%~f0" : 簡單說就是表示當前命令的絕對路徑.
"%*" : 我們知道 %1 表示第一個參數, 依次類推, %2 表示第二個.... 那么 %* 就很好理解了, 代表所有參數.

 

 

@echo (off|on)關閉或打開回顯命令

PAUSE 停止dos窗口,一般在最后調用,防止dos窗口關閉

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM