1. 變量,雙引號(hào)不同情況處理
set a="hello world"
echo %a%
REM "hello world"
set b=xx\"hello world"
echo %b%
REM xx\"hello world"
set "c=xx\hello world"
echo %c%
REM xx\hello world
2. 變量賦值變化
默認(rèn)情況,if后面的復(fù)合語句當(dāng)作一條命令一次性執(zhí)行
若設(shè)置了延遲變量,復(fù)合語句里會(huì)一條一條執(zhí)行,用!var!才能引用變化后的賦值
REM 開啟延遲變量
setlocal enabledelayedexpansion
set a=test
REM 留意if的空格
if "%a%" == "test" (
echo %a%
set a=hello
if "!a!"=="hello" echo %a%
echo %a%
)
REM setlocal disabledelayedexpansion
REM 關(guān)閉延遲變量,留意變量含有!情況
3. 變量截取字符串
%var:~index,len%
截取變量部分,index 從0開始
len<0時(shí),排除字符串最后len個(gè)
%var:~len%
直接提取最后len個(gè)
4. 變量拓展,輸入,表達(dá)式
set P
REM 顯示P開頭的變量
set /p var="輸入:"
REM 用戶輸入信息
set /a var=1+2
REM 表達(dá)式
拓展變量:
- %ERRORLEVEL% 上一條命令執(zhí)行后的返回結(jié)果,成功0,錯(cuò)誤有各種自己的標(biāo)識(shí)
- %%~ni 循環(huán)中,可獲取不帶后綴的變量名
- 可以巧妙使用類似數(shù)組,set a[1]="hello",實(shí)際是一個(gè)變量