批處理BAT替換與截取字符串的用法t1=%a:~3%是什么意思
例
@echo off
set a=belcome to CMD borld!
set temp=%a:b=w%
echo %temp%
pause
將顯示 welcome to CMD world! 即用w替換了變量a中的b。
二、截取用法
字符串最前面的光標(biāo)所在處表示第0位,第一個(gè)字符后面的光標(biāo)所在表示第一位,依次類(lèi)推。
為了更好的理解截取用法,下面給出了字符串superhero位數(shù)的相關(guān)示意圖:
s u p e r h e r o
0 1 2 3 …… -3 -2 -1 無(wú)表示
例
@echo off
set a=superhero
set temp=%a:~0,5%
echo %temp%
pause
將顯示super 即顯示了變量a的第0位至第5位中包括的所有元素。
若如下
@echo off
set a=superhero
set temp=%a:~3%
echo %temp%
pause
[html]
將顯示perhero 即顯示了變量a的第三位以后的所有字符。
若如下
[code]
@echo off
set a=superhero
set temp=%a:~-3%
echo %temp%
pause
將顯示ero 即顯示了變量a的倒數(shù)三個(gè)字符。
若如下
@echo off
set a=superhero
set temp=%a:~0,-3%
echo %temp%
pause
將顯示superh 即顯示了變量a的第0位和第-3位中間包含的所有字符。
bat截取字符串實(shí)例
@echo off
set str=123456789
echo 第一個(gè)字符為:%str:~0,1%
echo 頭兩個(gè)字符為:%str:~0,2%
echo 頭5個(gè)字符為:%str:~0,5%
echo 去掉最后一個(gè)字符后的字符串為:%str:~0,-1%
echo 去掉最后3個(gè)字符后的字符串為:%str:~0,-3%
echo 第4個(gè)字符為:%str:~3,1%
echo 第4個(gè)及其之后的3個(gè)字符為:%str:~3,4%
echo 最后一個(gè)字符為:%str:~-1%
echo 最后一個(gè)字符為:%str:~-1,1%
echo 最后兩個(gè)字符為:%str:~-1,2%
echo 倒數(shù)第4個(gè)字符為:%str:~-4,1%
echo 倒數(shù)第4個(gè)及其之后的字符為:%str:~-4%
echo 倒數(shù)第4個(gè)及其之后的1個(gè)字符為:%str:~-4,2%
echo 倒數(shù)第4個(gè)及其之后的2個(gè)字符為:%str:~-4,3%
pause
為了說(shuō)明這個(gè)問(wèn)題,我在這里把批處理取字符,做下進(jìn)一步的解釋,希望對(duì)新手有所啟發(fā)
如下:
echo %var:~n,k%
我們?cè)谶@里對(duì)每個(gè)參數(shù)做個(gè)說(shuō)明:"%var",即我們要從中要截取字符的字符串." ~ "取字
符標(biāo)志符(我是這么理解的),"n" 我們將其理解為指針,"k"我們將其理解為偏移地址.(注
:指針和偏移地址都是從零開(kāi)始數(shù)的)
我們還是用namejm版主的例子做下說(shuō)明:
@echo off
set str=123456789
rem 定義一個(gè)str字符串為123456789
echo 第一個(gè)字符為:%str:~0,1%
rem 指針為0,偏移地址為1,即從第0位開(kāi)始,取1位
echo 頭兩個(gè)字符為:%str:~0,2%
rem 指針為0,偏移地址為2,即從第0位開(kāi)始,取2位
echo 頭5個(gè)字符為:%str:~0,5%
rem 指針為0,偏移地址為5,即從第0位開(kāi)始,取5位
echo 去掉最后一個(gè)字符后的字符串為:%str:~0,-1%
rem 當(dāng)"k"為負(fù)值時(shí),我們可以這樣理解:從指針開(kāi)始處開(kāi)始取其后面所有字符,然后減去
后面"abs(k)位"..所以這個(gè)句字我們可以做如下解釋:從第0位開(kāi)始取其全部字符
為:123456789然后從后面減去abs(k)位,所以最后結(jié)果為:12345678
echo 去掉最后3個(gè)字符后的字符串為:%str:~0,-3%
rem 該句解釋同上↑
echo 最后一個(gè)字符為:%str:~-1%
rem 參數(shù)"n,"和"k"都可以為缺省,缺省"n,"時(shí)可以理解為:從abs(k)位開(kāi)始取其全部
echo 倒數(shù)第4個(gè)及其之后的字符為:%str:~-4%
rem 解釋同上↑
echo 最后一個(gè)字符為:%str:~-1,1%
rem n為負(fù)值時(shí),表示從后面開(kāi)始截取字符,取k位(此時(shí)n應(yīng)從1開(kāi)始數(shù))
echo 最后一個(gè)字符為:%str:~-1,2%
rem 解釋同上↑
echo 倒數(shù)第4個(gè)字符為:%str:~-4,1%
rem 解釋同上↑
echo 倒數(shù)第4個(gè)及其之后的1個(gè)字符為:%str:~-4,2%
rem 解釋同上↑
echo 倒數(shù)第4個(gè)及其之后的2個(gè)字符為:%str:~-4,3%
rem 解釋同上↑
pause
相關(guān)文章
批處理實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份與還原
數(shù)據(jù)庫(kù)備份的重要性和必要性是必不可少的,本文主要介紹了批處理實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份與還原,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02用批處理一鍵安裝兩種擴(kuò)展名的Windows系統(tǒng)補(bǔ)丁
每次安裝好操作系統(tǒng)后花費(fèi)時(shí)間最長(zhǎng)的就是下載補(bǔ)丁安裝補(bǔ)丁了,面介紹一種針對(duì)這兩種擴(kuò)展名的系統(tǒng)補(bǔ)丁快速安裝的辦法,需要的朋友可以參考下2014-01-01BAT批處理判斷服務(wù)是否正常運(yùn)行的方法(批處理命令綜合應(yīng)用)
批處理就是對(duì)某對(duì)象進(jìn)行批量的處理,通常被認(rèn)為是一種簡(jiǎn)化的腳本語(yǔ)言,它應(yīng)用于DOS和Windows系統(tǒng)中。這篇文章主要介紹了BAT批處理判斷服務(wù)是否正常運(yùn)行(批處理命令綜合應(yīng)用),需要的朋友可以參考下2020-02-02通過(guò)批處理關(guān)閉135 137 445等端口的實(shí)現(xiàn)代碼(勒索病毒)
這篇文章主要介紹了通過(guò)批處理關(guān)閉135 137 445等端口的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-08-08CMD下讀取/修改/刪除注冊(cè)表項(xiàng)的方法
先說(shuō)注冊(cè)表。很多命令行下訪問(wèn)注冊(cè)表的工具都是交互式的,溢出產(chǎn)生的shell一般不能再次重定向輸入/輸出流,所以無(wú)法使用2012-06-06