set var=%str:~a,b%中的规律

时间:2022-03-24 23:10:46

    set var=%str:~a,b%中的规律:

1) ab正:从偏移量为a的字符开始,向右截取|b|字符

2ab负:从最左端开始,抛弃|b|字符,直到偏移量为a的字符。

3a为正,b0(没有这种情况)

4) a为正,没有b: 截取偏移量为a之后的所有字符

5ab正:从偏移量为a的字符开始,向右截取|b|字符

6ab负:(没有这种情况)

7a为负,b0:(没有这种情况)

8a为负,没有b: 截取偏移量为a之后的所有字符

9a0b为正:从偏移量为a的字符开始,向右截取|b|字符

10a0b为负:从最左端开始,抛弃|b|字符,直到偏移量为a的字符

11)没有a,只有b: (没有这种情况)

12)没有a,没有b: (没有这种情况)

 

总结如下, 对应 %str:~a,b% 有:

1b为负时,从最左端开始,抛弃|b|字符,直到偏移量为a的字符

2b为正时,从偏移量为a的字符开始,向右截取|b|字符

3)没有b时,截取偏移量为a之后的所有字符

set var=%str:~a,b%中的规律

   %str:~0,1% 表示从偏移量0的字符开始截取1个字符(即数字①)

   %str:~0,-8% 从最右端往左数丢掉8个字符,直到偏移量为0的字符为止,(即丢掉 ⑨⑧⑦⑥⑤④③②,那么剩下的就是数字①)

   var=%str:~1,-8% 从最右端往左数,丢掉8个字符,直到偏移量为1的字符为止(即丢掉  ⑨⑧⑦⑥⑤④③以及① ,那么剩下的就是数字②)  

   %str:~2,-7% 从最右端往左数,丢掉7个字符,直到偏移量为2的字符为止(即数字③)

   var=%a:~-3% 截取偏移量为-3之后的所有字符(即⑦⑧⑨)

   var=%a:~6%  截取偏移量为6之后的所有字符(即⑦⑧⑨)