中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 11:39
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [讨论]截取字符的疑惑
可打印版本  775 / 2
第1楼 lzbow 发表于 2010-04-28 15:22
初级用户 发帖 13 积分 23
[讨论]截取字符的疑惑
请看
@echo off
echo set123456789>123.txt
set b=123456789
echo %b:~0,5% >>123.txt
echo %b:~-5% >>123.txt
echo %b:~2,5% >>123.txt
echo %b:~-5,3% >>123.txt
echo %b:~-5,-4% >>123.txt
echo %b:~-5,-3% >>123.txt
为什么
echo %b:~0,5% >>123.txt
echo %b:~-5% >>123.txt
echo %b:~2,5% >>123.txt
echo %b:~-5,3% >>123.txt
这些截取的直接显示出来

echo %b:~-5,-4% >>123.txt
echo %b:~-5,-3% >>123.txt
显示的是他们截取剩下的?
第2楼 Hanyeguxing 发表于 2010-04-28 17:44
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
set123456789
12345
56789
34567
567
5
56

结果是这样?很正常,我看不出哪有问题?
第3楼 Hanyeguxing 发表于 2010-04-29 17:35
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
关于“字符串截取”:%a:~]%
  方括号表示可选,%为变量标识符,a为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0,即截取从第1个字符开始),n为截取长度(缺省为全部)。
%a:~0,n%取左边n位
%a:~-m%取右边m位
%a:~m,n%从m+1位开始取n位
%a:~m,-n%从m+1位开始,至倒数n+1位
%a:~m %从m+1位开始取右边全部。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023