批處理之字串處理和數值計算

2022-08-04 07:15:14 字數 2396 閱讀 9254

字串處理

批處理有著具有非常強大的字串處理能力,其功能絕不低於c語言裡面的字串函式集。批處理中可實現的字串處理功能有:擷取字串內容、替換字串特定字段、合併字串、擴充字串等功能。下面對這些功能一一進行講解。

1.擷取字串

擷取字串可以說是字串處理功能中最常用的乙個子功能了,能夠實現擷取字串中的特定位置的乙個或多個字元。舉例 說明其基本功能:

@echo off

set ifo=abcdefghijklmnopqrstuvwxyz0 12 3456789

echo 原字串(第二行為各字元的序號):

echo %ifo%

echo 1234567890 123 45678901234567890123456

echo 擷取前5個字元:

echo %ifo:~0,5%

echo 擷取最後5個字元:

echo %ifo:~-5%

echo 擷取第乙個到倒數第6個字元:

echo %ifo:~0,-5%

echo 從第4個字元開始,擷取5個字元:

echo %ifo:~3,5%

echo 從倒數第14個字元開始,擷取5個字元:

echo %ifo:~-14,5%

pause

當然,上面的例子只是將字串處理的基本功能展示出來了,還看不出字串處理具體有什麼用處。下面這個例子是對時間進行處理。

@echo off

echo 當前時間是:%time% 即 %time:~0,2%點%time:~3,2%分%time:~6,2%秒%time:~9,2%釐秒

pause

2.替換字串

替換字串,即將某一字串中的特定字元或字串替換為給定的字串。舉例說明其功能:

@echo off

set aa=偉大的中國!我為你自豪!

echo 替換前:%aa%

echo 替換後:%aa:中國=中華人民共和國%

echo aa = %aa%

set "aa=%aa:中國=中華人民共和國%"

echo aa = %aa%

pause

對於上面的例子有一點說明,對比兩個echo aa = %aa%可以發現,如果要修改變數aa的內容的話,就需要將修改結果「%aa: 中國=中華人民共和國%」賦值給變數aa。上面的字串擷取也有著同樣的特點。

3.字串合併

其實,合併字串就是將兩個字串放在一起就可以了。舉例說明:

@echo off

set aa=偉大的中國!

set bb=我為你自豪!

echo %aa%%bb%

echo aa=%aa%

echo bb=%bb%

set "aa=%aa%%bb%"

echo aa=%aa%

pause

同樣,如果要改變變數aa的內容的話,就需要將合併結果「%aa%%bb%」賦值給變數aa。

4.擴充字串

數值計算

批處理裡面的數值計算功能較弱,只能夠進行整型計算,忽略浮點數的小數部分;同時數值計算的範圍也受限於系統位數,對於目前較為常見的32位機來說,數值計算能處理的數值範圍為0x80000000h~0x7fffffffh,即-2147483648~+2147483647。

數值計算需要使用set命令,具體格式為「set /a expression」。其中,expression代表計算表示式,計算表示式跟c語言裡面的表示式基本上完全一致。set支援的運算子也跟c語言裡面的一樣,只是沒有了増一減一。set支援的運算子及優先順序排序如下:

****************************************=

() - 分組

! ~ - - 一元運算子(邏輯非、按位非、取負)

* / % - 算數運算子(乘、除得商、除得餘數,即取餘)

+ - - 算數運算子(加、減)

<< >> - 邏輯移位(左移一位、右移一位)

& - 按位「與」

^ - 按位「異」

| - 按位「或」

= *= /= %= += -= - 賦值

&= ^= |= <<= >>=

, - 表示式分隔符(set可一次處理多個表示式)

****************************************=

我們知道,批處理中取變數的值是需要用%或者!的,而在set /a 中,直接用變數名稱即可取得變數的值。另外,set支援八進位制(數字字首0)、十進位制(數字無字首)和十六進製制(數字字首0x),且支援不同進製之間的計算,如set /a a=123+0123+0x123,計算及顯示結果為十進位制。

批處理 字串操作

批處理有著具有非常強大的字串處理能力,其功能絕不低於c語言裡面的字串函式集。批處理中可實現的字串處理功能有 擷取字串內容 替換字串特定字段 合併字串 擴充字串等功能。下面對這些功能一一進行講解。擷取字串可以說是字串處理功能中最常用的乙個子功能了,能夠實現擷取字串中的特定位置的乙個或多個字元。舉例說明...

批處理中的字串處理詳解

來自 http hi.baidu.com microalex blog item 4e7df9f48be7bdddf2d385d5.html 首先說一下,批處理和高階語言不同,沒有字串處理函式,比如strcat之類的,但是卻可以利用環境變數來實現這些函式的功能。本文對照c語言中的字串處理函式,講解在...

批處理中的字串處理詳解

首先說一下,批處理和高階語言不同,沒有字串處理函式,比如strcat之類的,但是卻可以利用環境變數來實現這些函式的功能。本文對照c語言中的字串處理函式,講解在批處理中的實現方法。首先說一下字串的儲存,在c語言中,採用字元陣列或者字元指標來儲存字串,而bat中沒有這些東東,所以要依靠環境變數來儲存。1...