DOS擷取字串

2021-08-25 15:56:32 字數 1888 閱讀 1361

@echo off

set str=123456789

echo 第乙個字元為:%str:~0,1%

echo 頭兩個字元為:%str:~0,2%

echo 頭5個字元為:%str:~0,5%

echo 去掉最後乙個字元後的字串為:%str:~0,-1%

echo 去掉最後3個字元後的字串為:%str:~0,-3%

echo 第4個字元為:%str:~3,1%

echo 第4個及其之後的3個字元為:%str:~3,4%

echo 最後乙個字元為:%str:~-1%

echo 最後乙個字元為:%str:~-1,1%

echo 最後乙個字元為:%str:~-1,2%

echo 倒數第4個字元為:%str:~-4,1%

echo 倒數第4個及其之後的字元為:%str:~-4%

echo 倒數第4個及其之後的1個字元為:%str:~-4,2%

echo 倒數第4個及其之後的2個字元為:%str:~-4,3%

pause

為了說明這個問題,我在這裡把批處理取字元,做下進一步的解釋,希望對新手有所啟發

如下:echo %var:~n,k%

我們在這裡對每個引數做個說明:"%var",即我們要從中要擷取字元的字串." ~ "取字

符標誌符(我是這麼理解的),"n" 我們將其理解為指標,"k"我們將其理解為偏移位址.(注

:指標和偏移位址都是從零開始數的)

我們還是用namejm版主的例子做下說明:

@echo off

set str=123456789

rem 定義乙個str字串為123456789

echo 第乙個字元為:%str:~0,1%

rem 指標為0,偏移位址為1,即從第0位開始,取1位

echo 頭兩個字元為:%str:~0,2%

rem 指標為0,偏移位址為2,即從第0位開始,取2位

echo 頭5個字元為:%str:~0,5%

rem

指標為0,偏移位址為5,即從第0位開始,取5位
echo 去掉最後乙個字元後的字串為:%str:~0,-1%
rem 當"k"為負值時,我們可以這樣理解:從指標開始處開始取其後面所有字元,然後減去
後面"abs(k)位"..所以這個句字我們可以做如下解釋:從第0位開始取其全部字元

為:123456789然後從後面減去abs(k)位,所以最後結果為:12345678
echo 去掉最後3個字元後的字串為:%str:~0,-3%

rem該句解釋同上↑

echo 最後乙個字元為:%str:~-1%
rem

引數"n,"和"k"都可以為預設,預設"n,"時可以理解為:從abs(k)位開始取其全部

echo 倒數第4個及其之後的字元為:%str:~-4%

rem解釋同上↑

echo 最後乙個字元為:%str:~-1,1%
rem

n為負值時,表示從後面開始擷取字元,取k位(此時n應從1開始數)

echo 最後乙個字元為:%str:~-1,2%
rem

解釋同上↑

echo 倒數第4個字元為:%str:~-4,1%

rem解釋同上↑

echo 倒數第4個及其之後的1個字元為:%str:~-4,2%
rem

解釋同上↑

echo 倒數第4個及其之後的2個字元為:%str:~-4,3%
rem 解釋同上↑
pause

dos下擷取字串

dos中擷取字串的格式為 str 0,3 表示擷取str中從第乙個字元開始提取三個字元。str 3,3 表示擷取str中從倒數第三個字元開始提取三個字元。set a 123456789 set b a 0,3 echo b 將會列印123 echo a 2 將會列印3456789,從第三個字元開始列...

擷取字串

static function blogsummary str,len 100 else out valtmp break tmp tmpstr outlen mb strlen valtmp,charset out val.rs 2 key right rs 2 key unset rs tags...

擷取字串

擷取字串一般使用string類的substring方法。public string substring int beginindex 返回該字串子串的新字串。子字串開始於指定的位置並且擴充套件到該字串的結尾。public string substring int beginindex,int end...