首頁 > 軟體

bat批次處理之字串操作的實現

2022-03-15 13:03:00

通常情況下,任何一種語言對於字串的操作都是重中之重。這裡稍微介紹下bat批次處理中對於字串的操作。

對於字串的擷取

set testStr=abcdefghijklmnopqrstuvwxyz0123456789
echo 原始字串 %testStr%
echo 提取前五個字串:%testStr:~0,5%
echo 提取最後五個字串:%testStr:~-5%
echo 提取第一個到倒數第六個字串:%testStr:~0,-5%
echo 提取五個字串,從第四個字元開始:%testStr:~3,5%

字串的替換

echo 替換之前:%repStr%
echo 替換後:%repStr:aa=zz%
echo repStr=%repStr%
set "repStr=%aa:aa=zz%"
echo repStr=%repStr%

字串合併

set aa=aabbcc
set bb=ddeeff
echo %aa%%bb%
echo aa=%aa%
echo bb=%bb%
set "aa=%aa%%bb%"
echo aa=%aa%

字串查詢

Setlocal ENABLEDELAYEDEXPANSION
::啟用命令擴充套件,參加setlocal /?命令
set str1=This is a test string
set ch1=t
::注意,這裡是區分大小寫的!
set str=%str1%
::複製字串,用來截短,而不影響源字串
:next
if not "%str%"=="" (
set /a num+=1
if "!str:~0,1!"=="%ch1%" goto last
::比較首字元是否為要求的字元,如果是則跳出迴圈
set "str=%str:~1%"
goto next
)
set /a num=0
::沒有找到字元時,將num置零
:last
echo 字元'%ch1%'在字串"%str1%"中的首次出現位置為%num%
echo 輸出完畢,按任意鍵退出&&pause>nul&&exit

這裡直接貼上對應的bat批次處理程式碼及其執行結果

bat 批次處理程式碼

echo off
echo 完全路徑:%0
echo 去掉引號:%~0
echo 所在分割區:%~d0
echo 所在路徑:%~p0
echo 檔名:%~n0
echo 拓展名:%~x0
echo 檔案屬性:%~a0
echo 修改時間:%~t0
echo 檔案大小:%~z0
echo %d0%
echo dp0 : %~dp0
echo sdp0:%~dp0
echo fo:%~f0
echo cd %cd%
rem set 目標字串=%源字串:~起始值,擷取長度%
set testStr=abcdefghijklmnopqrstuvwxyz0123456789
echo 原始字串 %testStr%
echo 提取前五個字串:%testStr:~0,5%
echo 提取最後五個字串:%testStr:~-5%
echo 提取第一個到倒數第六個字串:%testStr:~0,-5%
echo 提取五個字串,從第四個字元開始:%testStr:~3,5%
echo ================================================
echo ================    字串替換       ===========
echo ================================================
set repStr=aaabbbcccdddeeefff
echo 替換之前:%repStr%
echo 替換後:%repStr:aa=zz%
echo repStr=%repStr%
set "repStr=%aa:aa=zz%"
echo repStr=%repStr%
echo ================================================
echo ================    字串合併       ===========
echo ================================================
set aa=aabbcc
set bb=ddeeff
echo %aa%%bb%
echo aa=%aa%
echo bb=%bb%
set "aa=%aa%%bb%"
echo aa=%aa%

Setlocal ENABLEDELAYEDEXPANSION
::啟用命令擴充套件,參加setlocal /?命令
set str1=This is a test string
set ch1=t
::注意,這裡是區分大小寫的!
set str=%str1%
::複製字串,用來截短,而不影響源字串
:next
if not "%str%"=="" (
set /a num+=1
if "!str:~0,1!"=="%ch1%" goto last
::比較首字元是否為要求的字元,如果是則跳出迴圈
set "str=%str:~1%"
goto next
)
set /a num=0
::沒有找到字元時,將num置零
:last
echo 字元'%ch1%'在字串"%str1%"中的首次出現位置為%num%
echo 輸出完畢,按任意鍵退出&&pause>nul&&exit

相應的執行結果

到此這篇關於bat批次處理之字串操作的實現的文章就介紹到這了,更多相關批次處理字串操作內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com