windows批處理之一:字串處理
好久沒有寫技術類的篇目了,這兩天剛剛好有點收穫,記錄一下,以備後忘。
我們知道,在幾乎所有的程式語言中,都會有關於字串操作的函式。對於字串擷取這種最常用的字串操作,sql中、c中、awk中都提供了substr這個函式,而在shell中,則有一種另外形式的“函式”,${str:pos:len},含義一看就明白,跟substr很相似吧。但是,我們這裡要說的不是程式語言,也不是shell,而是windows下的批處理指令碼。
Windows的批處理沒有多少的學習過,所以一直都是簡單的一些命令堆砌而已。這兩天經過一番摸索,學到了一些其他的用法,就比如說上面提到的字串擷取,bat就可以這麼處理:
set str=%str:~1,10%
很奇怪的用法,是吧?windows確實夠奇怪的,不僅字串擷取類函式搞得很奇怪,連for迴圈也用的很奇怪,要不是一篇比較好的文章介紹,我還真沒想法學習下去。好了,廢話少說,先解釋一下上面這個命令的含義:
其實說穿了很簡單,就是擷取字串str中,從二個位置開始的,長度為10的字串。疑?為啥是第二個位置?嘿嘿,是比較奇怪,這個bat的處理跟c語言類似,是從0開始計數的,即0表示第一個位置。
那麼,如果我要擷取某個位置以後的全部字元呢?可以這樣:
set str=%str:~1%
本質上,跟substr函式一樣,所以說,語言只是工具,關鍵在於有這個思想。只要你瞭解過其他substr的用法,就能聯想到如何將同樣的用法用到這裡來。
當然,除了擷取字串,還有替換。假如要替換字串中的某些字元為其他字元,該怎麼做呢?
下面就是新的用法了:
set str=%str:,t=,tmp_%
什麼意思?
別急,慢慢來。首先,我們從前面的擷取用法已經知道,字串操作的基本用法是,先用前後%引用變數(這個跟shell下的${}真的very的相似啊),然後,以冒號(:)作為操作的開始符,表示我後面就要動手了。接著,如果是一個擷取操作,則需要用~來表明開始要進行字串擷取了。如果是一個替換操作,則指明要替換的字元(在這裡是“,t”),然後用“=”表示後面將要出現替換為的字元(“tmp_”),這樣,一個替換命令就完成了。是不是很簡單?趕快實驗一下吧,所有bat環境都適用哦~~~。
我們知道,在幾乎所有的程式語言中,都會有關於字串操作的函式。對於字串擷取這種最常用的字串操作,sql中、c中、awk中都提供了substr這個函式,而在shell中,則有一種另外形式的“函式”,${str:pos:len},含義一看就明白,跟substr很相似吧。但是,我們這裡要說的不是程式語言,也不是shell,而是windows下的批處理指令碼。
Windows的批處理沒有多少的學習過,所以一直都是簡單的一些命令堆砌而已。這兩天經過一番摸索,學到了一些其他的用法,就比如說上面提到的字串擷取,bat就可以這麼處理:
set str=%str:~1,10%
很奇怪的用法,是吧?windows確實夠奇怪的,不僅字串擷取類函式搞得很奇怪,連for迴圈也用的很奇怪,要不是一篇比較好的文章介紹,我還真沒想法學習下去。好了,廢話少說,先解釋一下上面這個命令的含義:
其實說穿了很簡單,就是擷取字串str中,從二個位置開始的,長度為10的字串。疑?為啥是第二個位置?嘿嘿,是比較奇怪,這個bat的處理跟c語言類似,是從0開始計數的,即0表示第一個位置。
那麼,如果我要擷取某個位置以後的全部字元呢?可以這樣:
set str=%str:~1%
本質上,跟substr函式一樣,所以說,語言只是工具,關鍵在於有這個思想。只要你瞭解過其他substr的用法,就能聯想到如何將同樣的用法用到這裡來。
當然,除了擷取字串,還有替換。假如要替換字串中的某些字元為其他字元,該怎麼做呢?
下面就是新的用法了:
set str=%str:,t=,tmp_%
什麼意思?
別急,慢慢來。首先,我們從前面的擷取用法已經知道,字串操作的基本用法是,先用前後%引用變數(這個跟shell下的${}真的very的相似啊),然後,以冒號(:)作為操作的開始符,表示我後面就要動手了。接著,如果是一個擷取操作,則需要用~來表明開始要進行字串擷取了。如果是一個替換操作,則指明要替換的字元(在這裡是“,t”),然後用“=”表示後面將要出現替換為的字元(“tmp_”),這樣,一個替換命令就完成了。是不是很簡單?趕快實驗一下吧,所有bat環境都適用哦~~~。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-680419/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Windows批處理學習(二)——批處理(3)薦Windows
- Windows批處理命令Windows
- bat 批處理字串操作BAT字串
- Windows批處理檔案Windows
- Windows批處理命令專題Windows
- windows sql loader批處理WindowsSQL
- 開啟windows批處理大門Windows
- 部分Windows批處理指令碼整理Windows指令碼
- windows批處理之三:for迴圈Windows
- 批處理框架框架
- JDBC 批處理JDBC
- 碎片批處理
- 批處理命令
- 批處理概述
- 字串處理字串
- 07 Windows批處理之檔案操作Windows
- 05 Windows批處理中的字串和布林資料型別Windows字串資料型別
- 批處理命令大全
- 批處理壓縮
- 批處理----學習
- DOS 批處理命令
- Apache Beam,批處理和流式處理的融合!Apache
- windows 批處理備份目錄指令碼Windows指令碼
- Windows10系統優化(批處理)Windows優化
- windows刪除檔案的批處理操作Windows
- 在linux中生成windows的批處理LinuxWindows
- windows批處理之二:基礎知識Windows
- windows cmt bat批處理中的註釋WindowsBAT
- Windows批處理中的變數和值Windows變數
- awk 字串處理字串
- abap 字串處理字串
- window 批處理檔案
- 什麼是批處理
- 批處理髮郵件
- 批處理檔案命令
- bat批處理檔案BAT
- 寫個批處理指令碼來幫忙幹活---遍歷資料夾&字串處理指令碼字串
- 使用awk批處理在字串中增加特殊符號字串符號