@echo offset 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%
remn為負值時,表示從後面開始擷取字元,取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...