溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

DOS如何截取字符串

發(fā)布時(shí)間:2021-10-08 14:24:39 來源:億速云 閱讀:293 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)DOS如何截取字符串的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

為了說明截取變量中字符串的問題曾經(jīng)舉過如下這個(gè)例子:

代碼如下:


@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

為了說明這個(gè)問題,我在這里把批處理取字符,做下進(jìn)一步的解釋,希望對新手有所啟發(fā)
如下:
echo %var:~n,k%
我們在這里對每個(gè)參數(shù)做個(gè)說明:"%var",即我們要從中要截取字符的字符串." ~ "取字
符標(biāo)志符(我是這么理解的),"n" 我們將其理解為指針,"k"我們將其理解為偏移地址.(注
:指針和偏移地址都是從零開始數(shù)的)
我們還是用namejm版主的例子做下說明:

代碼如下:


@echo off
set str=123456789
rem 定義一個(gè)str字符串為123456789
echo 第一個(gè)字符為:%str:~0,1%
rem 指針為0,偏移地址為1,即從第0位開始,取1位
echo 頭兩個(gè)字符為:%str:~0,2%
rem 指針為0,偏移地址為2,即從第0位開始,取2位
echo 頭5個(gè)字符為:%str:~0,5%
rem   指針為0,偏移地址為5,即從第0位開始,取5位
echo 去掉最后一個(gè)字符后的字符串為:%str:~0,-1%
rem 當(dāng)"k"為負(fù)值時(shí),我們可以這樣理解:從指針開始處開始取其后面所有字符,然后減去后面"abs(k)位"..所以這個(gè)句字我們可以做如下解釋:從第0位開始取其全部字符
為:123456789然后從后面減去abs(k)位,所以最后結(jié)果為:12345678
echo 去掉最后3個(gè)字符后的字符串為:%str:~0,-3%
rem   該句解釋同上↑
echo 最后一個(gè)字符為:%str:~-1%
rem   參數(shù)"n,"和"k"都可以為缺省,缺省"n,"時(shí)可以理解為:從abs(k)位開始取其全部
echo 倒數(shù)第4個(gè)及其之后的字符為:%str:~-4%
rem         解釋同上↑
echo 最后一個(gè)字符為:%str:~-1,1%
rem   n為負(fù)值時(shí),表示從后面開始截取字符,取k位(此時(shí)n應(yīng)從1開始數(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)于“DOS如何截取字符串”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

dos
AI