日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

bat批處理之字符串操作的實現_DOS/BAT

作者:pengcao89 ? 更新時間: 2022-05-17 編程語言

通常情況下,任何一種語言對于字符串的操作都是重中之重。這里稍微介紹下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

相應的運行結果

原文鏈接:https://blog.csdn.net/peng_cao/article/details/74170979

欄目分類
最近更新