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)个字符及其之后的所有字符;

=====================
=========================================

posted @   bkyhjw  阅读(205)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示