資源描述:
《bat批處理中的字符串處理詳解(字符串截取)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、BAT批處理中的字符串處理詳解(字符串截取)批處理有著具有非常強(qiáng)大的字符串處理能力,其功能絕不低于C語言里面的字符串函數(shù)集。批處理中可實(shí)現(xiàn)的字符串處理功能有:截取字符串內(nèi)容、替換字符串特定字段、合并字符串、擴(kuò)充字符串等功能下面對(duì)這些功能一一進(jìn)行講解?! ?、截取字符串 截取字符串可以說是字符串處理功能中最常用的一個(gè)子功能了,能夠?qū)崿F(xiàn)截取字符串中的特定位置的一個(gè)或多個(gè)字符。舉例說明其基本功能:復(fù)制代碼代碼如下: @echooff setifo=abcdefghijklmnopqrstuvwxyz0123456789 echo原字符串(第二行為各字符的序號(hào)): echo%
2、ifo% echo123456789012345678901234567890123456 echo截取前5個(gè)字符: echo%ifo:~0,5% echo截取最后5個(gè)字符: echo%ifo:~-5% echo截取第一個(gè)到倒數(shù)第6個(gè)字符: echo%ifo:~0,-5% echo從第4個(gè)字符開始,截取5個(gè)字符: echo%ifo:~3,5% echo從倒數(shù)第14個(gè)字符開始,截取5個(gè)字符: echo%ifo:~-14,5% pause 當(dāng)然,上面的例子只是將字符串處理的基本功能展示出來了,還看不出字符串處理具體有什么用處。下面這個(gè)例子是對(duì)時(shí)間進(jìn)行處理。
3、復(fù)制代碼代碼如下: @echooff echo當(dāng)前時(shí)間是:%time%即%time:~0,2%點(diǎn)%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒 pause2、替換字符串 替換字符串,即將某一字符串中的特定字符或字符串替換為給定的字符串。舉例說明其功能:復(fù)制代碼代碼如下: @echooff setaa=偉大的中國!我為你自豪! echo替換前:%aa% echo替換后:%aa:中國=中華人民共和國% echoaa=%aa% set"aa=%aa:中國=中華人民共和國%" echoaa=%aa% pause 對(duì)于上面的例子有一點(diǎn)
4、說明,對(duì)比兩個(gè)echoaa=%aa%可以發(fā)現(xiàn),如果要修改變量aa的內(nèi)容的話,就需要將修改結(jié)果“%aa:中國=中華人民共和國%”賦值給變量aa。上面的字符串截取也有著同樣的特點(diǎn)。3、字符串合并 其實(shí),合并字符串就是將兩個(gè)字符串放在一起就可以了。舉例說明:復(fù)制代碼代碼如下: @echooff setaa=偉大的中國! setbb=我為你自豪! echo%aa%%bb% echoaa=%aa% echobb=%bb% set"aa=%aa%%bb%" echoaa=%aa% pause 同樣,如果要改變變量aa的內(nèi)容的話,就需要將合并結(jié)果“%aa%%bb%”賦值
5、給變量aa。4、擴(kuò)充字符串 “擴(kuò)充”這個(gè)詞匯來自于微軟自己的翻譯,意思就是對(duì)表示文件路徑的字符串進(jìn)行特殊的處理,具體功能羅列如下: ========================================= ~I-刪除任何引號(hào)("),擴(kuò)充%I %~fI-將%I擴(kuò)充到一個(gè)完全合格的路徑名 %~dI-僅將%I擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào) %~pI-僅將%I擴(kuò)充到一個(gè)路徑 %~nI-僅將%I擴(kuò)充到一個(gè)文件名 %~xI-僅將%I擴(kuò)充到一個(gè)文件擴(kuò)展名 %~sI-擴(kuò)充的路徑只含有短名 %~aI-將%I擴(kuò)充到文件的文件屬性 %~tI-將%I擴(kuò)充到文件的日期/時(shí)間 %~z
6、I-將%I擴(kuò)充到文件的大小 %~$PATH:I-查找列在路徑環(huán)境變量的目錄,并將%I擴(kuò)充 到找到的第一個(gè)完全合格的名稱。如果環(huán)境變量名 未被定義,或者沒有找到文件,此組合鍵會(huì)擴(kuò)充到 空字符串 可以組合修飾符來得到多重結(jié)果: %~dpI-僅將%I擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)和路徑 %~nxI-僅將%I擴(kuò)充到一個(gè)文件名和擴(kuò)展名 %~fsI-僅將%I擴(kuò)充到一個(gè)帶有短名的完整路徑名 %~dp$PATH:i-查找列在路徑環(huán)境變量的目錄,并將%I擴(kuò)充 到找到的第一個(gè)驅(qū)動(dòng)器號(hào)和路徑。 %~ftzaI-將%I擴(kuò)充到類似輸出線路的DIR ======================
7、=================== 以上內(nèi)容引用于for/?幫助信息。其中的I代表變量I,不過需要說明的是,不是所有的變量都能夠進(jìn)行擴(kuò)充的,有兩個(gè)條件:1、該字符串代表一個(gè)文件路徑;2、變量要用%x來表示,x可取a-zA-Z0-9共62個(gè)字符中的任意一個(gè)。舉例說明:復(fù)制代碼代碼如下: @echooff echo正在運(yùn)行的這個(gè)批處理: echo完全路徑:%0 echo去掉引號(hào):%~0 echo所在分區(qū):%~d0 echo所處路徑:%~p0 echo文件名:%~n0 ech