(转)DOS批处理的字符串功能
生活随笔
收集整理的這篇文章主要介紹了
(转)DOS批处理的字符串功能
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
批處理有著具有非常強大的字符串處理能力,其功能絕不低于C語言里面的字符串函數(shù)集。批處理中可實現(xiàn)的字符串處理功能有:截取字符串內(nèi)容、替換字符串特定字段、合并字符串、擴充字符串等功能。下面對這些功能一一進行講解。【 1、截取字符串 】截取字符串可以說是字符串處理功能中最常用的一個子功能了,能夠?qū)崿F(xiàn)截取字符串中的特定位置的一個或多個字符。舉例說明其基本功能:=========================================@echo offset ifo=abcdefghijklmnopqrstuvwxyz0123456789echo 原字符串(第二行為各字符的序號):echo %ifo%echo 123456789012345678901234567890123456echo 截取前5個字符:echo %ifo:~0,5%echo 截取最后5個字符:echo %ifo:~-5%echo 截取第一個到倒數(shù)第6個字符:echo %ifo:~0,-5%echo 從第4個字符開始,截取5個字符:echo %ifo:~3,5%echo 從倒數(shù)第14個字符開始,截取5個字符:echo %ifo:~-14,5%pause=========================================當然,上面的例子只是將字符串處理的基本功能展示出來了,還看不出字符串處理具體有什么用處。下面這個例子是對時間進行處理。=========================================@echo offecho 當前時間是:%time% 即 %time:~0,2%點%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒pause=========================================【 2、替換字符串 】替換字符串,即將某一字符串中的特定字符或字符串替換為給定的字符串。舉例說明其功能:=========================================@echo offset aa=偉大的中國!我為你自豪!echo 替換前:%aa%echo 替換后:%aa:中國=中華人民共和國%echo aa = %aa%set "aa=%aa:中國=中華人民共和國%"echo aa = %aa%pause=========================================對于上面的例子有一點說明,對比兩個echo aa = %aa%可以發(fā)現(xiàn),如果要修改變量aa的內(nèi)容的話,就需要將修改結(jié)果“%aa:中國=中華人民共和國%”賦值給變量aa。上面的字符串截取也有著同樣的特點。【 3、字符串合并 】其實,合并字符串就是將兩個字符串放在一起就可以了。舉例說明:=========================================@echo offset aa=偉大的中國!set bb=我為你自豪!echo %aa%%bb%echo aa=%aa%echo bb=%bb%set "aa=%aa%%bb%"echo aa=%aa%pause=========================================同樣,如果要改變變量aa的內(nèi)容的話,就需要將合并結(jié)果“%aa%%bb%”賦值給變量aa。【 4、擴充字符串 】“擴充”這個詞匯來自于微軟自己的翻譯,意思就是對表示文件路徑的字符串進行特殊的處理,具體功能羅列如下:=========================================~I - 刪除任何引號("),擴充 %I%~fI - 將 %I 擴充到一個完全合格的路徑名%~dI - 僅將 %I 擴充到一個驅(qū)動器號%~pI - 僅將 %I 擴充到一個路徑%~nI - 僅將 %I 擴充到一個文件名%~xI - 僅將 %I 擴充到一個文件擴展名%~sI - 擴充的路徑只含有短名%~aI - 將 %I 擴充到文件的文件屬性%~tI - 將 %I 擴充到文件的日期/時間%~zI - 將 %I 擴充到文件的大小%~$PATH:I - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴充到找到的第一個完全合格的名稱。如果環(huán)境變量名未被定義,或者沒有找到文件,此組合鍵會擴充到空字符串可以組合修飾符來得到多重結(jié)果:%~dpI - 僅將 %I 擴充到一個驅(qū)動器號和路徑%~nxI - 僅將 %I 擴充到一個文件名和擴展名%~fsI - 僅將 %I 擴充到一個帶有短名的完整路徑名%~dp$PATH:i - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴充到找到的第一個驅(qū)動器號和路徑。 %~ftzaI - 將 %I 擴充到類似輸出線路的 DIR=========================================以上內(nèi)容引用于for /?幫助信息。其中的I代表變量I,不過需要說明的是,不是所有的變量都能夠進行擴充的,有兩個條件:1、該字符串代表一個文件路徑;2、變量要用%x來表示,x可取a-z A-Z 0-9共62個字符中的任意一個。舉例說明:=========================================@echo offecho 正在運行的這個批處理:echo 完全路徑:%0echo 去掉引號:%~0echo 所在分區(qū):%~d0echo 所處路徑:%~p0echo 文件名:%~n0echo 擴展名:%~x0echo 文件屬性:%~a0echo 修改時間:%~t0echo 文件大小:%~z0pause=========================================其中的%0是批處理里面的參數(shù),代表當前運行的批處理的完全路徑。類似的還有%1-%9,分別代表傳遞來的第1-9個參數(shù)。例子如下:===============================================@echo offset aa=C:\Windows\PPP\a.btxcall :deal aaa %aa% "c c" ddd eeepause>nulexit:dealecho %%0 = %0echo %%1 = %1echo %%2 = %2echo %%3 = %3echo %%4 = %4echo %%5 = %5===============================================其中,變量aa在之前是不可以擴充的,通過call命令并將aa作為參數(shù)傳遞給子函數(shù):deal,將aa變量轉(zhuǎn)換成了變量%1,即符合%x格式,從而可以進行字符串擴充。至于%x中x取a-z A-Z的形式,可以復習一下for語句,for語句里面的變量就是用%x來表示的,因而可以直接進行擴充。
轉(zhuǎn)自:http://www.cnblogs.com/ZC_Mo-Blog/archive/2009/12/28/1633766.html
轉(zhuǎn)載于:https://www.cnblogs.com/storymedia/p/4673557.html
總結(jié)
以上是生活随笔為你收集整理的(转)DOS批处理的字符串功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微粒贷的利息高吗
- 下一篇: hprose出现500: Interna