bat批處理指令碼沒有提供字串長度計算函式,為此需要自定義實現,本例將涉及批處理指令碼下述幾個關鍵知識點:
1)call 呼叫,呼叫結果如何賦值給變數
2)字串擷取
3)goto使用
4)變數延時讀取 enabledelayedexpansion
關於bat批處理指令碼編寫指南,大家可以參考 「windows bat 批處理指令碼編寫指南」
1、字串長度計算指令碼
vstr_len.bat
@echo off & setlocal enabledelayedexpansion
set arg1=%~1
set count=0
if not defined arg1 goto end
:loop
if not "!arg1:~%count%,1!"
==""
(set /a count+=1
goto loop
)echo %count%
:end
exit /b 0
cmd命令框呼叫
rem 輸出8
vstr_len afdsafsa
rem 輸出6
vstr_len 中國達ddd
2、指令碼中呼叫
1個指令碼呼叫中另外乙個指令碼,用call很容易實現,但是call呼叫完後要將呼叫結果賦值給某個變數卻很麻煩,看案例:
call_str_len.bat
@echo off
set str=call vstr_len.bat
for /f %%i in
('call vstr_len %str%')do
set str_len=%%i
echo %str_len%
說明:
1)call vstr_len %str%,呼叫計算字串長度函式
2)用for迴圈,變向實現call呼叫結果賦值給str_len
Bat批處理指令碼案例 0開頭字串如何轉成數字
0開頭字串直接進行表示式算術運算時,指令碼會預設把0開頭的字串轉換為8進製數值,如下 rem a 22,021轉成10進製為17,17 5 22 set a num 021 5 rem 會報錯,028不是有效8進製。數字常數只能是十進位制 17 十六位進製 0x11 或八進位制 021 set a ...
bat 批處理 字串 擷取
由於專案中配置項太多,經常有同事在配置xml的時候,講 配置的路徑搞錯,先需要搞乙個指令碼,可以自動將路徑擷取出來,晚上收集了點資料,暫時先上幾個 bat 後面留著 具體實現。echo off setvar 0 rem 迴圈開始了 continue set a var 1 echo 第 var 次迴...
bat批處理字串擷取補充
先複製貼上一段網上很容易就搜到的內容 echo off set ifo abcdefghijklmnopqrstuvwxyz0123456789 echo 原字串 第二行為各字元的序號 echo ifo echo 123456789012345678901234567890123456 echo 擷...