我正在尝试从svn update
命令输出中获取修订号。在文件tmpFile.txt
中,我有字符串At revision 58998.
我运行以下命令:
findstr /r "\<[0-9][0-9]*\>" "tmpFile.txt"
我已经
了At revision 58998.
另外,使用
运行findstr /r /o "\<[0-9][0-9]*\>" "tmpFile.txt"
我得到了
0:At revision 58998.
发生了什么,我怎么才能得到这个号码?
答案 0 :(得分:3)
FINDSTR打印出匹配的整行。它无法仅提取线的匹配部分。
您可以使用FOR / F解析输出并获取数字。
for /f "tokens=3 delims=. " %%A in (
'findstr /rc:"At revision [0-9][0-9]*\." "tmpFile.txt"'
) do echo %%A
答案 1 :(得分:1)
不是findstr
解决方案,但它有效:)
setlocal enabledelayedexpansion
for /f "tokens=3" %%a in (tmpFile.txt) do (
set num=%%a
set num=!num:.=!
)
echo !num!
这也会从最后删除.
。
如果您对.
使用
for /f "tokens=3" %%a in (tmpFile.txt) do echo %%a
或cmd行(无批次)
for /f "tokens=3" %a in (tmpFile.txt) do echo %a