我需要使用批处理命令从最近提交的versionNo
日志中提取svn
字符串。
我正在使用以下命令,
cd C:\Program Files\TortoiseSVN\bin\
svn --username user --password pass log -r COMMITTED "SVN_PATH"
它返回,
------------------------------------------------------------------------
r304 | user | 2019-06-10 17:53:23 +0530 (Mon, 10 Jun 2019) | 2 lines
versionNo - 1.2.3.4 committed for Mantis Id - 0000742
------------------------------------------------------------------------
我无法将此命令结果保存到变量中并提取此字符串(1.2.3.4
)。
答案 0 :(得分:1)
例如,我会这样做
setlocal
cd C:\Program Files\TortoiseSVN\bin\
for /f "tokens=3" %%G IN ('svn --username user --password pass log -r COMMITTED "SVN_PATH" ^| find "VersionNo"') do set "v=%%G"
echo %v%
endlocal
答案 1 :(得分:1)
要捕获命令的输出,请使用for /F
loop。
我认为最简单的方法是:
cd /D "C:\Program Files\TortoiseSVN\bin"
for /F "tokens=2 delims=- " %%L in ('
svn --username user --password pass log -r COMMITTED "SVN_PATH"
') do @set "VERSION=%%L"
echo/%VERSION%
由于-
和 SPACE 被定义为令牌定界符,因此仅会忽略连字符=仅定界符的行,并且不会进行特定过滤(使用find
或{{ 1}})。