我是如何批量获取字符串中字符的位置的

yos*_*bel 7 command-line cmd batch-file

我有一个保存在变量中的结果字符串RES,这个结果就像2.3/5.0我想在" /" 之前获取部分并通过ECHO命令将其发送到批处理输出.我一直在搜索如何使用批处理命令执行此操作,但只获得将子字符串设置为固定位置的结果,但我怎么能知道这个位置?如果我知道这个位置,我唯一应该做的就是:

ECHO %RES:~0,pos%
Run Code Online (Sandbox Code Playgroud)

然后问题是:我如何从字符串中获得这个位置?谢谢

mbr*_*shi 8

如果你真的想要这个位置,你可以应用strlen函数如何在批处理文件中获取字符串长度?到下面的结果,但如果你只是想要这个前缀,你可以简单地做:

set "res=2.3/5.0"
for /f "tokens=1 delims=/" %%i in ("%res%") do (set prefix=%%i)
Run Code Online (Sandbox Code Playgroud)

  • `tokens = 1`是默认值.你可以省略它. (3认同)

Ste*_*han 6

为什么要寻找分隔符的位置而不是仅仅使用它?

for /f "delims=/" %%i in ("%RES%") do echo %%i
Run Code Online (Sandbox Code Playgroud)