Board logo

标题: [讨论]截取字符的疑惑 [打印本页]

作者: lzbow     时间: 2010-4-28 15:22    标题: [讨论]截取字符的疑惑

请看
@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
显示的是他们截取剩下的?
作者: Hanyeguxing     时间: 2010-4-28 17:44


  Quote:
set123456789
12345
56789
34567
567
5
56

结果是这样?很正常,我看不出哪有问题?
作者: Hanyeguxing     时间: 2010-4-29 17:35
关于“字符串截取”:%a:~[m[,n]]%
  方括号表示可选,%为变量标识符,a为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0,即截取从第1个字符开始),n为截取长度(缺省为全部)。

  Quote:
%a:~0,n%取左边n位
%a:~-m%取右边m位
%a:~m,n%从m+1位开始取n位
%a:~m,-n%从m+1位开始,至倒数n+1位
%a:~m %从m+1位开始取右边全部。