标题: [文本处理] 批处理怎样使用变量的引用来截取字符串? [打印本页]
作者: xiaoyang1141 时间: 2011-9-27 21:53 标题: 批处理怎样使用变量的引用来截取字符串?
先看代码:- set temp=abcd99efghijklmn
- set yy=%temp:~4,2%
- echo %yy%
复制代码
以上“%temp:~4,2%”中怎样使用变量来取代4和2?
我想用一些具有一定规则的变量来取代其中的4和2,但是不知道怎么弄。
请各位帮忙。
谢谢。
作者: awk 时间: 2011-9-27 22:04
- @echo off
- setlocal enabledelayedexpansion
- set temp=abcd99efghijklmn
- set a=4
- set b=2
- set yy=!temp:~%a%,%b%!
- echo !yy!
复制代码
作者: xiaoyang1141 时间: 2011-9-27 22:24
回复 2# awk
这种方法的确行,问题是怎么处理!temp:~!a!,!b!!这样的情况呢。
作者: awk 时间: 2011-9-27 22:28
回复 3# xiaoyang1141 - @echo off
- setlocal enabledelayedexpansion
- set temp=abcd99efghijklmn
- set a=4
- set b=2
- call set yy=%%temp:~!a!,!b!%%
- echo !yy!
复制代码
作者: xiaoyang1141 时间: 2011-9-27 22:43
回复 2# awk
谢谢,今天又学到一些东西了。
作者: ArdentMan 时间: 2011-9-28 07:57
本帖最后由 ArdentMan 于 2011-9-28 08:00 编辑
Call还是影响效率建议采用将变量转换成For变量的方法:- @Echo Off&SetLocal EnableDelayedExpansion
- Set "Temp=abcdefghijklmnopqrstuvwxyz"
- For /L %%i In (1,1,5) Do (
- Set /A a=!random!%%26,b=!random!%%3+1
- For %%j In (!a!) Do (
- For %%k In (!b!) Do Echo !Temp:~%%j,%%k!
- )
- )
- Pause>Nul
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |