萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> DOS截取字符串的方法

DOS截取字符串的方法

關於DOS(windows命令行)截取變量中字符串問題的詳細說明,需要的朋友可以參考下  

為了說明截取變量中字符串的問題曾經舉過如下這個例子:

復制代碼 代碼如下:
@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

copyright © 萬盛學電腦網 all rights reserved