曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 2906|回复: 0
打印 上一主题 下一主题

[语法] 字符串截取:%a:~m,n%

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2014-5-12 10:00:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
字符串截取有一个格式:%a:~[m,[,n]]%

其中方括号表示可选,% 为变量标识符,a 为变量名,这部分必须要有。

:~ 可以当成是一固定格式,如果分开来理解,那么认为冒号用于分隔变量名和说明部分。

m 为偏移量,缺省值为 0。

n 为截取长度,缺省为全部。

测试代码:
  1. @echo off

  2. set a=123456789

  3. echo %a:~1,2%

  4. echo %a:~3,3%

  5. echo %a:~2,-3%

  6. echo %a:~,-2%

  7. echo %a:~3%

  8. echo %a:~-4,2%

  9. echo %a:~-4,-1%
  10. pause
复制代码


输出结果:
23
456
3456
1234567
456789
67
678
请按任意键继续. . .

当 m 为负数的时候,表示字串的末尾算起的偏移。当 n 为负数的时候,表示去掉后面的 n 个字符,即从后面截取。

再看一个用在 for 循环里用的例子:
  1. @echo off
  2. set disk=cdefghijklmnopqrstuvwxyz
  3. set k=1
  4. FOR /L %%i IN (0,1,23) DO call echo %%disk:~%%i,1%%
  5. pause
复制代码

在 for 里变量用的是两个 % 。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 05:55 , Processed in 0.080567 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表