str ~
原来,在 set var=%str:~偏移量,长度% 这样的语句中,如果没有逗号及其之后的长度,就表示截取偏移量位置上及其之后的所有字符,如果长度的值为负数,则表示抛弃最后几个字符。
现在,我们可以对任意位置上的字符做提取工作了(假设 set str=123456789):
① 提取1: set var=%str:~0,1% 或 set var=%str:~0,-8% 或 set var=%str:~-9,1%
② 提取2: set var=%str:~1,1% 或 set var=%str:~1,-7% 或 set var=%str:~-8,1%
③ 提取9: set var=%str:~8,1% 或 set var=%str:~8% 或 set var=%str:~-1,1% 或 set var=%str:~-1%
④ 提取123:set var=%str:~0,3% 或 set var=%str:~0,-6% 或 set var=%str:~-9,3%
⑤ 提取234:set var=%str:~1,3% 或 set var=%str:~1,-5% 或 set var=%str:~-8,3%
⑥ 提取789:set var=%str:~6,3% 或 set var=%str:~6% 或 set var=%str:~-3,3% 或 set var=%str:~-3%
最后,我们来总结一下字符截取的规律:
1、截取字符串可以用 set var=%str:~数值1,数值2% 这样的语句来实现;
2、字符的截取是以偏移量来计算的,而不是以字符的绝对位置来计算;
3、当数值1为正数时,表示从左到右截取;当数值1为负数时,表示从右到左截取;
4、当数值2为正数时,表示要截取后字符串的长度;当为负数时,表示要抛弃的最后几个字符长度;
5、当数值2及其之前的逗号不存在时,表示截取的是第(数值1+1)个字符及其之后的所有字符;
=====================
=========================================