1、截取字符串 從指定變量中截取指定位置的字符串,,并返回,。*這個處理,并不改變變量的值 語法格式:%變量名:~開始位置,終了位置% 注:正數(shù)的時候開始位置是從0開始向右計算,,負數(shù)的時候從1開始向右計算,。(跳的個數(shù)為指定開始位置的絕對值) 具體有以下幾種截取方式,,看實例去理解用法,這個時候,,我們假設有一個變量【var】,,其值為【1234567890】。 ①正常路線: %var:~5,2% ? 67 ②無終了: %var:~5% ? 67890 ③負終了: %var:~5,-2% ? 678 ④負開始位置: %var:~-6,2% ? 56 ⑤負開始無終了: %var:~-6% ? 567890 ⑥負開始負終了: %var:~-6,-2% ? 5678 ⑦沒有開始: %var:~,4% ? 1234 ⑧無開始無終了: %var% ? 1234567890 正常的情況下,,就這幾種截取的情況,,完全可以根據(jù)我們業(yè)務的需要,來使用不同的方法來截取字符串,。 這個字符串截取中,,還是有幾個規(guī)律的 A、開始位置的計算:當開始位置指定為正數(shù)的時候,,我們就可以從左側開始查找開始位置(左側第一個字符為0) 當開始位置省略或者為0的時候,,開始位置那個字符就是要截取的開始字符。 當開始位置指定為負數(shù)的時候,,我們就可以從右側開始查找指定位置(右側第一個字符為-1) B,、終了位置的計算:當終了位置指定為正數(shù)的時候,我們就可以從上述計算得到的終了位置查找終了位置(開始位置為1) 當終了位置省略或者為0的時候,,字符串的終了位置就是要截取字符串的終了位置 當終了位置指定為負數(shù)的時候,,我們就可以從右側開始查找指定位置(右側第一個字符為0) C、最終截取的字符串就是開始位置到終了位置之間的字符串(包括開始位置和終了位置) ------------------------------------------------------------------------------------------------------------------------------------------------------ 但是,,這個字符串截取是不是有異常發(fā)生呢,?有,也沒有,。 當要截取的字符串不為空,并且,,要截出的字符串不不能正常截出的時候,,返回結果就是空值。 當要截取的字符串本身就是空的時候,,取得結果就是【~開始位置,終了位置】,,也就是命令的一部分被返回出來。 接下來繼續(xù)討論這個問題,,既然要截取的字符串為空的時候,,解出來的東西乖乖的,那我們能不能不讓它進去呢,?當然,,我們使用我們已知的字符串判斷函數(shù)就是可以的。 例如下面代碼的處理: 運行結果為: F:\tmp>a.bat 可見,,當var為空的時候,,分支根本就沒有走進去,。程序顯然沒有走進去, 當分歧沒有進去的時候,,在該分歧內,,我即使寫不合法的命令,也不會報錯的,,不信你可以試試,,反正我是試過了。 但是,,下面這一點,,就有點費解了,且看代碼: @echo off set var= IF DEFINED var ( echo DEFINED IF %var:~1,1% EQU A ( echo true ) ) else ( echo NOT DEFINED ) 這個時候,,紅色字體部分雖然跑不到,,但是,竟然跑不過,,所以,,我就郁悶了。(報1的使用方法不對,。--1 の使い方が誤っています,。) batch程序的執(zhí)行方式是什么的?不知道,,想知道,,但是,又不知道到哪里知道去,。
2,、字符串替換 字符串替換,就是把某一字符串中的特定字符或字符串替換為給定的字符串 語法結構:%變量名:替換前=替換后% 替換前不可以為空,,但是,,替換后可以為空 還有一點,變換前和變換后不能用變量表示,,而變量名只能有變量名來表示,。 例:%var:123=abc%
3.字符串拼接,直接將兩個字符串放到一塊兒就可以了,。 例如:字符串123和abc拼接,,那么就可以寫成123abc 如果是字符串變量123和abc拼接,那么就可以寫成%123%%abc%
4,、字符串查找,,例如,查找字符串345在字符串123456789123456789中位置 哈哈,,這個我還不知道,,以后知道了再補上去,。如果系統(tǒng)沒有給出方法的話,就只能寫方法查找了,。
|
|