根据特定值获取字符串的一部分

根据特定值获取字符串的一部分

我有以下代码:

SET PATH=\\dc01\intern\Product\NightlyBuild\Reg\Reg_20171207.1\out\site
OR
SET PATH=\\dc01\intern\Product\Release\ex\17.12\site

现在我想从变量中获取以下值:

PATH_trimmed = Reg\Reg_20171207.1
OR
PATH_trimmed = 17.12

因此,对于每条路径,应该从变量中取出不同的部分。例如,我需要一种搜索​​单词的方法:“夜间构建“ 或者 ”发布“以检索所需的值。我尝试使用左字符串方法来做到这一点,例如:

%path:~0,4%

但那不管用。有人能给我指点迷津吗?

答案1

最简单的方法是解析PATH字符串:-

@echo off
rem SET PATH=\\dc01\intern\Product\NightlyBuild\Reg\Reg_20171207.1\out\site
rem SET PATH=\\dc01\intern\Product\Release\ex\17.12\site
rem for /f "tokens=4-6 delims=\" %%f in ("%path%") do echo %%f:%%g:%%h
for /f "tokens=4-6 delims=\" %%f in ("%path%") do (
    if %%f==NightlyBuild set PATH_trimmed=%%g\%%h
    if %%f==Release set PATH_trimmed=%%h
)
rem echo PATH_trimmed=%PATH_trimmed%

这避免了使用外部程序:它将PATH每个拆分\成单独的变量,忽略空白字段,因此第一个重要字段是dc01,但仅提取第四到第六个字段,分别为fgh

通过比较%%f,将适当的值设置到PATH_trimmed变量中。该技术可以轻松扩展到其他PATH格式。

注释掉的行用于测试目的。

相关内容