bat截取字符串

很久之前研究bat截取字符串,一段時間不用就忘記了。在此記錄下來,方便以後查看

 

例子:

@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 去掉第一個字符後的字符串爲:%str:~1%
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

 

原文地址:http://www.cnblogs.com/dongzhiquan/archive/2009/03/18/1994934.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章