欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > BAT批處理中的字符串處理詳解(字符串截取)

BAT批處理中的字符串處理詳解(字符串截取)

熱門標簽:電話機器人全國招商 電話機器人產(chǎn)品怎么樣 玉林市機器人外呼系統(tǒng)哪家好 雷霆電銷機器人怎么樣 智能打電話機器人收費 清遠百度地圖標注店鋪位置 如何申請400電話業(yè)務mm 呼倫貝爾外呼系統(tǒng) 如何弄地圖標注

下面對這些功能一一進行講解。

  1、截取字符串

  截取字符串可以說是字符串處理功能中最常用的一個子功能了,能夠?qū)崿F(xiàn)截取字符串中的特定位置的一個或多個字符。舉例說明其基本功能:

復制代碼 代碼如下:

  @echo off
  set ifo=abcdefghijklmnopqrstuvwxyz0123456789
  echo 原字符串(第二行為各字符的序號):
  echo %ifo%
  echo 123456789012345678901234567890123456
  echo 截取前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 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%可以發(fā)現(xiàn),如果要修改變量aa的內(nèi)容的話,就需要將修改結果“%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的內(nèi)容的話,就需要將合并結果“%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)境變量名
  未被定義,或者沒有找到文件,此組合鍵會擴充到
  空字符串
  可以組合修飾符來得到多重結果:
  %~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 off
  echo 正在運行的這個批處理:
  echo 完全路徑:%0
  echo 去掉引號:%~0
  echo 所在分區(qū):%~d0
  echo 所處路徑:%~p0
  echo 文件名:%~n0
  echo 擴展名:%~x0
  echo 文件屬性:%~a0
  echo 修改時間:%~t0
  echo 文件大小:%~z0
  pause

  其中的%0是批處理里面的參數(shù),代表當前運行的批處理的完全路徑。類似的還有%1-%9,分別代表傳遞來的第1-9個參數(shù)。例子如下:

復制代碼 代碼如下:

  @echo off
  set aa=C:\Windows\PPP\a.btx
  call :deal aaa %aa% "c c" ddd eee
  pause>nul
  exit
  :deal
  echo %%0 = %0
  echo %%1 = %1
  echo %%2 = %2
  echo %%3 = %3
  echo %%4 = %4
  echo %%5 = %5

  其中,變量aa在之前是不可以擴充的,通過call命令并將aa作為參數(shù)傳遞給子函數(shù):deal,將aa變量轉(zhuǎn)換成了變量%1,即符合%x格式,從而可以進行字符串擴充。
  至于%x中x取a-z A-Z的形式,可以復習一下for語句,for語句里面的變量就是用%x來表示的,因而可以直接進行擴充。

下面是其它網(wǎng)友的補充:注意是與c語言做了一些對比

首先說一下,批處理和高級語言不同,沒有字符串處理函數(shù),比如strcat之類的,但是卻可以利用環(huán)境變量來實現(xiàn)這些函數(shù)的功能。
本文對照C語言中的字符串處理函數(shù),講解在批處理中的實現(xiàn)方法。

首先說一下字符串的存儲,在C語言中,采用字符數(shù)組或者字符指針來存儲字符串,而BAT中沒有這些東東,所以要依靠環(huán)境變量來存儲。
設置環(huán)境變量的語句為set語句,本文不詳細介紹了,參考set /?語句。

1、C語中的strcpy函數(shù),將一個字符串復制到另一個字符型指針或字符數(shù)組,覆蓋原來的字符串。

C語言中的調(diào)用方法:strcpy(目標字符串,源字符串)

在批處理中的實現(xiàn)方法:

set 目標字符串=%源字符串%

示例:

復制代碼 代碼如下:

@echo off
::關閉屏幕回顯(可選)
set str1=This is old string
::設置str1中存儲的字符串,注意沒有雙引號,這點與C語言等不同!
set str2=This is new string
::設置str2中存儲的字符串
echo 執(zhí)行字符串拷貝以前:
echo str1=%str1%
echo str2=%str2%
::先輸出一次原有的字符串
set str1=%str2%
::字符串拷貝
echo 執(zhí)行字符串拷貝以后:
echo str1=%str1%
echo str2=%str2%
::輸出執(zhí)行完字符串拷貝后的字符串
echo 輸出完畢,按任意鍵退出pause>nulexit
::輸出信息,當用戶按任意鍵時,結束該批處理。

2、C語中的strcat函數(shù),將一個字符串連接到另一個字符型指針或字符數(shù)組的末尾。

C語言中的調(diào)用方法:strcat(目標字符串,源字符串)

在批處理中的實現(xiàn)方法:

set 目標字符串=%目標字符串%%源字符串%

示例:

復制代碼 代碼如下:

@echo off
set str1=This is string1
set str2=This is string2
::設置str1和str2中存儲的字符串
echo 連接字符串以前:
echo str1=%str1%
echo str2=%str2%
::先輸出一次原有的字符串
set str1=%str1%%str2%
::字符串連接
echo 連接字符串以后:
echo str1=%str1%
echo str2=%str2%
::輸出執(zhí)行完字符串連接后的兩個字符串
echo 輸出完畢,按任意鍵退出pause>nulexit

3、字符串截取,C中沒有這種函數(shù),不過可以通過語句實現(xiàn),不再介紹,直接說批處理的。

set 目標字符串=%源字符串:~起始值,截取長度%

注意,起始值從0開始!
截取長度是可選的,如果省略逗號和截取長度,將會從起始值一直截取到字符串的結尾。

示例:

復制代碼 代碼如下:

@echo off
set str1=This is string1
::設置str1中存儲的字符串
set str2=%str1:~8,6%
set str3=%str1:~0,4%
set str4=%str1:~5%
::字符串截取
echo 原字符串:
echo str1=%str1%
echo 截取得到的字符串:
echo str2=%str2%
echo str3=%str3%
echo str4=%str4%
::輸出執(zhí)行結果
echo 輸出完畢,按任意鍵退出pause>nulexit

4、C語中的strlen函數(shù),取得字符串的長度。

C語言中的調(diào)用方法:strlen(字符串)

在批處理中的實現(xiàn)方法是利用goto和標簽,形成循環(huán)結構,不斷將字符串截短1字符,并用變量記錄截短的次數(shù),直到字符串變成空串。

示例:

復制代碼 代碼如下:

@echo off
set str1=This is a test string
set str2=Hello World
::設置兩個字符串
set str=%str1%
::將str1復制到str
:next1
::標簽,用于goto跳轉(zhuǎn)
::注意與注釋語句的區(qū)別,注釋用兩個冒號開頭,標簽則為一個冒號
if not "%str%"=="" (
::判斷str是不是空串,如果不是則執(zhí)行下邊的語句
set /a num+=1
::算術運算,使num的值自增1,相當于num++或者++num語句
set "str=%str:~1%"
::截取字符串,賦給自身
goto next1
::跳轉(zhuǎn)到next1標簽
::這里利用goto和標簽,構成循環(huán)結構
)
::當以上循環(huán)結構執(zhí)行完畢時,會執(zhí)行下邊的語句
echo str1=%str1%
echo str1的長度為:%num%
::輸出結果
set num=0
::將記和用的環(huán)境變量num置0,以便開始下一次運算。
set str=%str2%
::將str2復制到str
:next2
::定義一個新的標簽
::注意不能與已有的標簽同名,否則會出錯!
if not "%str%"=="" (
set /a num+=1
set "str=%str:~1%"
goto next2
)
::和上一個循環(huán)相似,不再介紹
echo str2=%str2%
echo str2的長度為:%num%
::輸出結果
echo 輸出完畢,按任意鍵退出pause>nulexit

5、C語中的strchr函數(shù),在一個字符串中查找一個字符的首次出現(xiàn)位置,找到時返回所在位置,找不到時返回0值。

批處理中的思路:不斷截短字符串,并取截短后字符串中的首字符,和要求的字符比較,如果相同就利用goto語句跳出循環(huán),輸出結果,如果沒有相同的字符,執(zhí)行到最后就輸出0值。

示例:

復制代碼 代碼如下:

@echo off
Setlocal ENABLEDELAYEDEXPANSION
::啟用命令擴展,參加setlocal /?命令
set str1=This is a test string
set ch1=t
::注意,這里是區(qū)分大小寫的!
set str=%str1%
::復制字符串,用來截短,而不影響源字符串
:next
if not "%str%"=="" (
set /a num+=1
if "!str:~0,1!"=="%ch1%" goto last
::比較首字符是否為要求的字符,如果是則跳出循環(huán)
set "str=%str:~1%"
goto next
)
set /a num=0
::沒有找到字符時,將num置零
:last
echo 字符'%ch1%'在字符串"%str1%"中的首次出現(xiàn)位置為%num%
echo 輸出完畢,按任意鍵退出pause>nulexit

引用:
最后出幾道題,看看大家學習的怎么樣!
(1)如何實現(xiàn)C語言中strstr函數(shù)的功能?
提示:strstr函數(shù)的功能是在字符串1中查找字符串2,找到時返回串2首次出現(xiàn)的位置,否則返回0值。與strchr區(qū)別就是,第二個參數(shù)是字符串,而不是字符了。

(2)如何用批處理構建while循環(huán)?
提示:while循環(huán)一般格式為:
while(表達式)
{
循環(huán)體
[break|continue;]
循環(huán)體
}
其中,循環(huán)體為0條或多條語句,break用于跳出循環(huán),continue用于直接判斷表達式并決定是否進入下一次循環(huán)。
一般執(zhí)行順序:首先判斷表達式,如果成立則進入循環(huán),循環(huán)體執(zhí)行完畢后再次判斷表達式的值,決定是否再次循環(huán)。

(3)如何用批處理構建do-while循環(huán)?
提示:do-while循環(huán)一般格式為:
do
{
循環(huán)體
[break|continue;]
循環(huán)體
}while(表達式);
各個語句的解釋參照while循環(huán)。
一般執(zhí)行順序:首先進入循環(huán),循環(huán)體執(zhí)行完畢后判斷表達式的值,表達式成立則再次進入循環(huán)。

您可能感興趣的文章:
  • 批處理經(jīng)典入門教程!(從不懂到高手)
  • windows批處理命令教程
  • bat批處理 if 命令示例詳解
  • 批處理 Set 命令詳解 讓你理解set命令
  • 批處理命令Start的使用介紹
  • 批處理bat設置固定IP地址和自動IP地址
  • Windows下用命令行修改IP地址的方法詳解(附批處理文件)
  • 批處理獲取網(wǎng)卡名稱的代碼(附修改IP、網(wǎng)關、DNS腳本)
  • 獲取外網(wǎng)IP地址的批處理代碼
  • 批處理、VBS實現(xiàn)自動設置IP、默認網(wǎng)關、DNS、WINS、IE代理(全)
  • IP地址自動設置的批處理代碼分享

標簽:白銀 蕪湖 江西 樂山 三門峽 公主嶺 株洲 臺州

巨人網(wǎng)絡通訊聲明:本文標題《BAT批處理中的字符串處理詳解(字符串截取)》,本文關鍵詞  BAT,批處理,中的,字符串,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《BAT批處理中的字符串處理詳解(字符串截取)》相關的同類信息!
  • 本頁收集關于BAT批處理中的字符串處理詳解(字符串截取)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    2023国产精品视频| 欧美白人最猛性xxxxx69交| 精品处破学生在线二十三| 亚洲电影视频在线| 91视频xxxx| 色综合视频在线观看| 国产亚洲综合av| 麻豆91免费看| 中文字幕一区二区三区人妻| 国产高潮视频在线观看| 欧美探花视频资源| 国产精品久久久久天堂| 国产成人日日夜夜| 男女男精品视频网站| 久久久不卡影院| 国精产品一区一区三区mba视频| 一级片手机在线观看| 欧美电影免费观看高清完整版 | 欧美精品丝袜中出| 综合久久国产九一剧情麻豆| 处破女av一区二区| 男人操女人的视频网站| 中文字幕在线不卡一区二区三区| 国产91在线|亚洲| wwwav国产| 亚洲码国产岛国毛片在线| 92国产精品观看| 欧美日精品一区视频| 亚洲国产精品久久人人爱| 国产人妖在线观看| 欧美天天综合网| 天天影视涩香欲综合网| 欧美做受喷浆在线观看| 精品久久久久久亚洲综合网| 黑人巨大精品欧美黑白配亚洲| 91资源在线播放| 久久久国产午夜精品| 国产精品69毛片高清亚洲| av最新在线观看| 中文字幕亚洲不卡| 不卡影院免费观看| 在线观看日韩高清av| 一区二区三区在线观看网站| 又黄又色的网站| 精品国偷自产国产一区| 国产老妇另类xxxxx| 波多野结衣亚洲一区二区| 亚洲精品中文字幕在线观看| 韩国三级丰满少妇高潮| 欧美剧情电影在线观看完整版免费励志电影 | 中文字幕在线播放视频| 精品日韩99亚洲| 国产乱理伦片在线观看夜一区| 91嫩草|国产丨精品入口| 亚洲蜜臀av乱码久久精品蜜桃| 人妻精品久久久久中文字幕69| 日韩一级免费一区| 国产黑丝在线一区二区三区| 欧美影视一区二区三区| 婷婷成人激情在线网| 亚洲天堂av中文字幕| 一区二区三区中文在线| 免费观看av网站| ...中文天堂在线一区| 欧美性猛交乱大交| 日韩欧美久久久| 狠狠网亚洲精品| 国产精品 欧美激情| 午夜欧美视频在线观看| 国产呦小j女精品视频| 国产精品乱人伦一区二区| xfplay5566色资源网站| 欧美精品一区二区三区在线播放| jiyouzz国产精品久久| 日韩一区二区三区在线观看| 国产精品99久久不卡二区| 欧美色老头old∨ideo| 黄色日韩网站视频| 欧美精品欧美精品系列| 免费看精品久久片| 91国产视频在线观看| 久久国产精品无码网站| 欧美中文字幕一区二区三区| 久久精品99久久久| 美女av免费看| 亚洲成av人片| 国产精品国产高清国产| 爽好久久久欧美精品| 午夜国产福利一区二区| 性欧美大战久久久久久久久| 国产一区二区播放| 久久国产精品第一页| 在线成人免费观看| 成人免费av在线| 制服丝袜一区二区三区| 国产成人av一区二区三区在线| 精品视频免费在线| 成人毛片老司机大片| 久久综合色综合88| 日韩综合第一页| 亚洲色图一区二区三区| 纪美影视在线观看电视版使用方法| 一本大道av一区二区在线播放| 三级在线观看一区二区| 欧美综合一区二区| 国产麻豆精品theporn| 欧美日韩中文一区| 久久91精品国产91久久小草| 欧美日韩高清一区二区| 成人性生交大片免费看中文网站| 精品入口麻豆88视频| 99久久久精品| 久久久久久毛片| 蜜臀aⅴ国产精品久久久国产老师| 中文字幕一区二区三区不卡在线| 亚洲黄色网址大全| 久久99深爱久久99精品| 日韩欧美国产精品一区| 99视频有精品| 国产日韩v精品一区二区| 无码一区二区三区在线| 青青草97国产精品免费观看无弹窗版| 在线亚洲高清视频| av不卡在线播放| 亚洲欧洲一区二区三区| 东京热无码av男人的天堂| 激情都市一区二区| 日韩欧美一二三| 亚洲欧美视频在线播放| 丝袜国产日韩另类美女| 欧美日韩在线三级| 中国特级黄色片| 一区二区三区高清在线| 欧美性一区二区| 色哟哟在线观看视频| 亚洲免费在线播放| 国产精品无码99re| 99r国产精品| 亚洲丝袜精品丝袜在线| 色综合久久久久网| av激情综合网| 亚洲最大色网站| 欧美日韩精品专区| 国产白袜脚足j棉袜在线观看| 天堂一区二区在线| 欧美一区二区二区| 精品人伦一区二区三电影| 国产一区二区三区在线看麻豆| 国产网站一区二区| 黑鬼狂亚洲人videos| 成人毛片视频在线观看| 亚洲精品久久久蜜桃| 精品视频在线免费看| 日韩av无码一区二区三区不卡| 欧美aaaaaa午夜精品| 久久久三级国产网站| 日日操免费视频| 国产精品456| 亚洲视频在线一区二区| 老湿机69福利| 91亚洲大成网污www| 亚洲国产精品久久不卡毛片| 在线观看日韩高清av| 亚洲熟女乱综合一区二区三区| 美脚の诱脚舐め脚责91| 国产欧美视频一区二区| 欧美又粗又大又长| 大尺度在线观看| 久久国产精品色| 成人欧美一区二区三区黑人麻豆| 在线观看91视频| 中文字幕在线播放视频| 九九九久久久精品| 国产精品美女久久久久久2018 | 30一40一50老女人毛片| 国产精品综合一区二区| 亚洲免费观看高清完整版在线观看熊 | 99在线视频精品| 午夜精品久久久久久久久| 欧美精品一区二区在线播放| 日本中文字幕免费在线观看| 国产精久久久久| 国产综合一区二区| 亚洲激情图片qvod| 精品国产一区二区三区四区四 | 久久久午夜精品理论片中文字幕| 精品人妻伦九区久久aaa片| 又大又长粗又爽又黄少妇视频| 免费一级欧美片在线观看| 中文字幕中文乱码欧美一区二区| 欧美日韩国产a| 久久嫩草捆绑紧缚| 国产成a人亚洲| 婷婷成人激情在线网| 国产日韩精品视频一区| 欧美午夜精品久久久久久超碰 | av在线不卡网| 美腿丝袜亚洲色图| 亚洲视频一区二区免费在线观看 | 夜夜揉揉日日人人青青一国产精品|