[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样使用变量的引用来截取字符串?

先看代码:
  1. set temp=abcd99efghijklmn
  2. set yy=%temp:~4,2%
  3. echo %yy%
复制代码
以上“%temp:~4,2%”中怎样使用变量来取代4和2?
我想用一些具有一定规则的变量来取代其中的4和2,但是不知道怎么弄。
请各位帮忙。
谢谢。

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set temp=abcd99efghijklmn
  4. set a=4
  5. set b=2
  6. set yy=!temp:~%a%,%b%!
  7. echo !yy!
复制代码

TOP

回复 2# awk
这种方法的确行,问题是怎么处理!temp:~!a!,!b!!这样的情况呢。

TOP

回复 3# xiaoyang1141
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set temp=abcd99efghijklmn
  4. set a=4
  5. set b=2
  6. call set yy=%%temp:~!a!,!b!%%
  7. echo !yy!
复制代码

TOP

回复 2# awk
谢谢,今天又学到一些东西了。

TOP

本帖最后由 ArdentMan 于 2011-9-28 08:00 编辑

Call还是影响效率建议采用将变量转换成For变量的方法:
  1. @Echo Off&SetLocal EnableDelayedExpansion
  2. Set "Temp=abcdefghijklmnopqrstuvwxyz"
  3. For /L %%i In (1,1,5) Do (
  4.   Set /A a=!random!%%26,b=!random!%%3+1
  5.   For %%j In (!a!) Do (
  6.     For %%k In (!b!) Do Echo !Temp:~%%j,%%k!
  7.   )
  8. )
  9. Pause>Nul
复制代码
一路飘过的鸟~~~

TOP

返回列表