|
|
发表于 2010-5-2 02:08:31
|
显示全部楼层
- @echo off
- set m=1234567890
- echo.测试1:%m:~1,1%
- echo.测试2:%m:~20,1%
- echo.测试3:%m:~20%
- echo.测试4:%m:~8,-5%
- echo.测试5:%m:~0,1%
- echo.测试6:%m:~-0,1%
- echo.测试7:%m:~-20,1%
- echo.测试8:%m:~-5%
- echo.测试9:%m:~-20%
- pause
复制代码 在 XP SP3 Pro 下,显示结果:
测试1:2
测试2:
测试3:
测试4:
测试5:1
测试6:1
测试7:1
测试8:67890
测试9:1234567890
测试1、测试5、测试6、测试8,都是显示正常。
测试2、测试3,因为超出了范围,所以为空。
字符串都是从左向右截取的,所以测试4为空。
当数值为负,且超出范围时,是否也为空呢?从测试7和测试9中可以看出,显然不是。
形如%m:~-20,1%,超出范围时,依然截取并获取了最左边的字符。
形如%m:~-20%,超出范围时,总是截取并获取整个字符串。
所以:在截取字符串时,即使负的数值超出范围,依然是从最左边的字符开始截取。
[ 本帖最后由 hanyeguxing 于 2010-5-2 02:13 编辑 ] |
评分
-
查看全部评分
|