如何在批处理文件中提取子字符串

Dav*_*uez 8 substring batch-file

现在我需要在批处理文件中将子字符串形成一个字符串

我有这个

set path="c:\test\branches\9.1\_build"
Run Code Online (Sandbox Code Playgroud)

我需要在分支值后得到第一个值: 9.1

但是这个值可以处于其他位置

c:\xxx\yyyy\zzzz\branches\otherbranch\zzz\uuuu\iii
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我需要得到这个:otherbranch 我需要一个通用解决方案,谢谢你们..

End*_*oro 17

set "mypath=c:\test\branches\9.1\_build"
set "value=%mypath:*\branches\=%"
if "%value%"=="%mypath%" echo "\branches\" not found &goto :eof
for /f "delims=\" %%a in ("%value%") do set "value=%%~a"
echo %value%
Run Code Online (Sandbox Code Playgroud)

  • 您还可以通过检查第一个替换结果与原始字符串不匹配来检查以验证\ branches \是否存在. (4认同)
  • +1,但你可能还应该添加一个\:`set"mypath =%mypath:*\branches\=%"` (2认同)