好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 批處理中字符串分割實現代碼

批處理中字符串分割實現代碼

熱門標簽:京東辦理400電話查詢 菏澤電銷外呼系統軟件 外呼系統解決電銷問題 貴陽電話外呼系統廠家 高德百度地圖標注推廣 地圖標注店鋪的收費 為什么申請400電話 蘇丹地圖標注app 南陽高頻外呼系統怎么安裝

批處理 字符串分割 實例

使用for命令可以對字符串進行分段處理。

分割字符串

@echo off
::定義一個以分號作為分隔的字符串
set str=AAA;BBB;CCC;DDD;EEE;FFF
::str的副本
set remain=%str%
:loop
for /f "tokens=1* delims=;" %%a in ("%remain%") do (
	::輸出第一個分段(令牌)
	echo %%a
	rem 將截取剩下的部分賦給變量remain,其實這里可以使用延遲變量開關
	set remain=%%b
)
::如果還有剩余,則繼續分割
if defined remain goto :loop
pause

主要解釋for語句:

delims=;表示以分號作為分隔符,對remain字符串進行分割處理。
tokens=1*,tokens表示分段的方式,tokens=1*表示第一個分隔符;之前的作為一部分,剩下的(*表示)作為一部分。這兩部分在循環體總可以用%%a表示第一部分,%%b表示第二部分。

批處理 遍歷path環境變量

我們知道path環境變量也是以分號作為分隔符的,批處理中,所以同樣可以用上面的代碼來遍歷path環境變量。

@echo off
setlocal enabledelayedexpansion 
::定義一個以分號作為分隔的字符串
set str=%path%
::str的副本
set remain=%str%
:loop
for /f "tokens=1* delims=;" %%a in ("%remain%") do (
	::輸出第一個分段(令牌)
	echo %%a
	rem 將截取剩下的部分賦給變量remain,其實這里可以使用延遲變量開關
	set remain=%%b
)
::如果還有剩余,則繼續分割
if defined remain goto :loop
pause

運行結果:

D:\dev\workspace\MarkdownTools
......
C:\windows\system32
D:\dev\java\jdk1.8.0_91\bin
F:\Program Files\nodejs\node_global
F:\Program Files\Git\bin
D:\dev\apache-maven-3.5.4\bin
......
請按任意鍵繼續. . .

批處理 判斷path環境變量中是否有某個目錄

例如查找系統path環境變量中是否存在D:\dev\workspace\MarkdownTools這個目錄:

@echo off
setlocal enabledelayedexpansion 
::定義一個以分號作為分隔的字符串
::set str=AAA;BBB;CCC;DDD;EEE;FFF
set str=%path%
::str的副本
set remain=%str%
set toFind=D:\dev\workspace\MarkdownTools
set isFind=false
:loop
for /f "tokens=1* delims=;" %%a in ("%remain%") do (
	if "%toFind%"=="%%a" (
		::設置標記,以便后續使用
		set isFind=true
		::找到了就不找了
		goto :finded
	)
	rem 將截取剩下的部分賦給變量remain,其實這里可以使用延遲變量開關
	set remain=%%b
)
::如果還有剩余,則繼續分割
if defined remain goto :loop
:finded
echo %isFind%
pause

運行結果:

true

請按任意鍵繼續. . .

參考資料

最近有有個小需求需要將shell 腳本的功能挪到windows中,但發現shell中有數組概念,但windows中卻沒有,同時shell中有很多方式處理字符串分割,但bat中就顯得比較雞肋,經過一番查找,終于有了方案(Stack Overflow:http://stackoverflow.com/questions/1707058/how-to-split-a-string-in-a-windows-batch-file):

方案: 通過for循環處理,而處理的方式又可以分兩種,一種是普通for,一種是for的文件處理方式:

方案一:

@echo off  setlocal
rem 注意這里的s定義,其值不是使用雙引號引起來的
rem also works for comma-separated lists, e.g. ABC,DEF,GHI,JKL
set s=AAA BBB CCC DDD EEE FFF
for %%a in (%s%) do echo %%a

方案二:is the best for (most) arbitrary delimiter characters.

@echo off  setlocal
set s=AAA BBB CCC DDD EEE FFF
set t=%s%
:loop
for /f "tokens=1*" %%a in ("%t%") do (
 echo %%a
 rem 將截取剩下的部分賦給t,其實這里可以使用延遲變量開關
 set t=%%b
 )
if defined t goto :loop

有個老兄給了個更完整的(用到了延遲變量):

@echo off
setlocal ENABLEDELAYEDEXPANSION

REM Set a string with an arbitrary number of substrings separated by semi colons
set teststring=The;rain;in;spain

REM Do something with each substring
:stringLOOP
 REM Stop when the string is empty
 if "!teststring!" EQU "" goto END

 for /f "delims=;" %%a in ("!teststring!") do set substring=%%a

  REM Do something with the substring - 
  REM we just echo it for the purposes of demo
  echo !substring!

REM Now strip off the leading substring
:striploop
 set stripchar=!teststring:~0,1!
 set teststring=!teststring:~1!

 if "!teststring!" EQU "" goto stringloop

 if "!stripchar!" NEQ ";" goto striploop

 goto stringloop
)

:END
endlocal

還有這樣的:

set input=AAA BBB CCC DDD EEE FFF
set nth=4
for /F "tokens=%nth% delims= " %%a in ("%input%") do set nthstring=%%a
echo %nthstring%

其實Powershell里可能有更多的內置函數可以使用:

PS C:\&; "AAA BBB CCC DDD EEE FFF".Split()

還有人提出用vbscrip代替bat:

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
str1 = objArgs(0)
s=Split(str1," ")
For i=LBound(s) To UBound(s)
 WScript.Echo s(i)
 WScript.Echo s(9) ' get the 10th element
Next
usage:
c:\test> cscript /nologo test.vbs "AAA BBB CCC"

最后來一個bat中的小難點: 變量延遲(自上而下,逐條(簡單語句、復合語句(for、if 語句塊只算一條))執行,而非逐行執行)

變量延遲詳解 call setlocal

以上就是批處理中字符串分割實現代碼的詳細內容,更多關于批處理字符串分割的資料請關注腳本之家其它相關文章!

標簽:阿里 滄州 昌都 資陽 海北 韶關 通遼 咸寧

巨人網絡通訊聲明:本文標題《批處理中字符串分割實現代碼》,本文關鍵詞  批處理,中,字符串,分割,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《批處理中字符串分割實現代碼》相關的同類信息!
  • 本頁收集關于批處理中字符串分割實現代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 钟丽缇色戒hd未删减版| 爽?躁多水?快?深点触手 | 伟大的诱惑者韩剧免费观看完整版 | 自拍 另类 综合| 漫蛙防走失站| 免费看成人羞羞视频AV美女直播| 91风吟鸣唱精品系列嫩模| 男女OOXX一上一下抽搐123| 久久偷窥视频| 免费观看又污又黄的网站高| 女同毛片免费网站| 麻花传剧原创mv在线| 久久婷婷国产一区二区三区| 久久久久国产精品免费| 黑人超粗大超硬极品videos| 无码人妻AⅤ一区二区三区鲁大师| 美女床上戏| 欧产?日产?国产精品一二| 中文精品久久久久国产不卡| 富婆按摩XXXⅩ私密全套| 嗯哦啊不要| 一级理论午夜A片中文字幕免费| 成人3D无遮H漫画| 看一级黄色片子| 厨房掀起裙子从后面进去视频| 色婷婷久久99综合精品JK白丝 | 91久久久无码精品不卡A片直播 | 浴室狂欢未删减完整版| 粗大娇吟夹得太紧了| 男人用嘴巴添女人的坏处| 午夜无遮挡怕怕怕免费视频| 欧美国产97人人爽人人喊| 美女隐私秘?免费观看软件| bdsmtorture女囚夹乳| 成人区精品一区二区不卡亚洲| 欧美国产日韩一区二区三区| 她越哭他撞得越凶现言免费| 黄网站色视频免费老师和学生| 国产精品福利视频一区二区| 欧美综合色在线图区| 最近中文字幕无吗高清视频|