Board logo

标题: [文本处理] 批处理字符串截取方法,有几种? [打印本页]

作者: smatenchen    时间: 2022-10-4 16:13     标题: 批处理字符串截取方法,有几种?


字符串截取方法,有几种?


各位大神,请出手相助!


1,
先排除,%a:~1,2%,这种变量截取方法,这里讨论的是其它方法。


2,
除了变量截取方法,还有其它方法吗?


3,
for /f "delims=" %%a in ("1234567") do echo %%a


在这个for /f形式的命令里,可以做到从字符串"1234567",第n位开始,
截取其特定的片段吗?


例如,类似变量截取方法,截取其从第2位开始,到倒数第2位的片段。


若可以,那其中的"delims=",应该写成什么形式呢?


又或者运用其它命令,如findstr等,可以去做到吗


4,
请大神们出手相助!多谢!

作者: smatenchen    时间: 2022-10-4 16:19

回复 53# qixiaobin0715

回复 34# Batcher


1,
请两位大神出手相助!多谢!
作者: smatenchen    时间: 2022-10-5 10:35

本帖最后由 smatenchen 于 2022-10-5 19:43 编辑

回复 53# qixiaobin0715

1,
大神来过了吗?


怎么又把脚印给抹了呢?


是有何不妥吗?留下了一些不妥的话语后又后悔了吗?


2,
就事论事,我遇到了上述一些疑难,还请大神出手相助!多谢!


3,
另外,我发现%a:~1,2%,这个字符串变量截取方法,有瑕疵。


从前面截取,和从后面截取时,所用的原则,不一致。这令人厌恶!


也即,%a:~1,2%,%a:~-3,-1%,这两个操作会用不同的原则。


微软为何此时,不用同一原则呢?令人气恼啊!

作者: Batcher    时间: 2022-10-5 17:47

回复 1# smatenchen


delims只能设置列分隔符,它本身并没有截取字符串的功能。
  1. @echo off
  2. for /f "delims=17" %%a in ("1234567") do (
  3.     echo,%%a
  4. )
  5. pause
复制代码

作者: smatenchen    时间: 2022-10-5 20:49

回复 4# Batcher


1,
感谢大神!


2,
【delims只能设置列分隔符,它本身并没有截取字符串的功能。】


这个问题,我也注意到了,一时也想不出解决办法,就来发帖求助大神们了。


3,
如果就真有这么一道题,是不能用字符串变量截取方法的,
那有没有用其它命令来办到的方法呢?


4,
微软为何为此,只架了一条独木桥呢?


微软,实在令人起不了敬意啊!
作者: qixiaobin0715    时间: 2022-10-6 08:58

回复 3# smatenchen
无它,只是一个链接而已,又何来不妥话语和后悔。你想多了!
作者: qixiaobin0715    时间: 2022-10-6 09:23

光说不练,牢骚满腹,能学得好吗?如果对某项知识深恶痛绝,又能学得很好,那真是天才!
作者: smatenchen    时间: 2022-10-6 10:19

回复 6# qixiaobin0715


作者: smatenchen    时间: 2022-10-6 10:36

回复 7# qixiaobin0715


1,
感谢大神!


2,
看样子,大神也对这个疑难,束手无法,没法解决啊!


3,
【深恶痛绝,又能学得很好】?


大神如此说话,其道理何在呢?


那为何不是,指出问题,逼其修正,改良呢?


为何要将就微软的垃圾做法呢?为何不痛斥微软呢?
作者: qixiaobin0715    时间: 2022-10-6 10:38

本帖最后由 qixiaobin0715 于 2022-10-6 10:40 编辑

我没觉得微软不好啊。只是自己修炼不够而已!
作者: smatenchen    时间: 2022-10-6 11:11

回复 10# qixiaobin0715






欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2