转:批处理分割字符串

文章出处:http://www.netingcn.com/bat-split-string.html

把一个字符串按照特定的字符分割成多个子字符,一般的编程语言中都提供内置的方法来实现这个功能,在批处理中可以通过命令for来完成。命令格式如下:

for /f "tokens=x,y,m-n delims=chars" %%a in ("str")   do cmd

其中tokens获取分割后字符串的列数,列数从1开始技术,可以指定多个,中间用“,”分割。tokens设置具体含义如下:

tokens=x	表示只提取第x列。
tokens=x,y	表示只提取第x列和第y列。
tokens=m-n	表示提取第m列至第n列。
tokens=x*	表示提取第x列和后面所有字符串都作为第x+1列。
tokens=x,*	等同tokens=x*
tokens=x,y,m-n	表示提取第x,y列以及第m至第n列。

delims是指定风格字符,可以指定多个,例如:delims=xy,表示以x或者y作为分隔符。注意:tokens和delims必须在同一对引号中。

tokens参数决定了输出变量的个数,%%a表示第一个变量引用,%%b表示第二个变量引用,依次类推。也可以指定第一个变量为%%m、%%n等,总之下一个变量字符是上一个变量的ascii码值加1。

一个简单例子如下:

@echo off

set str=100x200x300y400y500x600y700

for /f "tokens=1,3-5,* delims=x|y" %%a in ("%str%") do (
	set c1=%%a
	set c3=%%b
	set c4=%%c
	set c5=%%d
	set c6=%%e

)

echo %c1%, %c3%, %c4%, %c5%, %c6%

pause

输出结果为:100, 300, 400, 500, 600y700。其中tokens=1,3-5,*表示提取第1、3至5列,同时把第5列后所有剩余字符串作为第6列,一个输出了5个变量,也可以写作tokens=1,3,4,5,*。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
批处理中,可以通过使用内置的命令"set"和"echo"来将字符串换为ASCII码。下面是一个示例代码,演示了如何将字符串换为ASCII码: ``` @echo off setlocal enableDelayedExpansion set string=Hello World for /L %%i in (0,1,255) do ( set "char=!string:~%%i,1!" if defined char ( for /F %%a in ('echo !char! ^| xxd -p') do ( echo ASCII code of !char! is %%a ) ) ) ``` 在这个示例中,我们首先定义了一个字符串"Hello World"。然后,使用一个for循环遍历ASCII码的范围0-255。在每次循环中,我们使用"!string:~%%i,1!"从字符串中获取每个字符,并将其存储在变量"char"中。接下来,我们使用"echo !char! | xxd -p"命令将"char"变量的值换为ASCII码,并通过"for /F"命令将换后的结果存储在"%%a"变量中。最后,我们使用"echo"命令打印出每个字符对应的ASCII码。 请注意,上述示例中使用了"xxd"命令来进行ASCII码换。在Windows系统中,默认情况下并不包含"xxd"命令。你可以通过安装Cygwin或者GnuWin32等工具包来获得"xxd"命令。另外,还可以使用其他编程语言如Python或者Java来实现字符串ASCII码的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [批处理分割字符串](https://blog.csdn.net/zhju85126com/article/details/46649961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【WINDOWS / DOS 批处理】if命令中的比较运算符](https://blog.csdn.net/mt15306338066/article/details/127589183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值