中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 08:11
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]截取字符的疑惑 查看 773 回复 2
楼 主 [讨论]截取字符的疑惑 发表于 2010-04-28 15:22 ·  中国 广东 东莞 电信
初级用户
积分 23
发帖 13
注册 2009-06-02 07:33
17年会员
UID 146527
性别 男
状态 离线
请看
@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 发表于 2010-04-28 17:44 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
set123456789
12345
56789
34567
567
5
56

结果是这样?很正常,我看不出哪有问题?
3 发表于 2010-04-29 17:35 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
关于“字符串截取”:%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位开始取右边全部。
论坛跳转: