BAT批處理指令碼案例 計算字串長度

2021-10-02 20:48:00 字數 1046 閱讀 2839

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 擷...