我有以下代码:
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
,但仅提取第四到第六个字段,分别为f
,g
和h
。
通过比较%%f
,将适当的值设置到PATH_trimmed
变量中。该技术可以轻松扩展到其他PATH
格式。
注释掉的行用于测试目的。