Windows 获取批处理文件变量的SVN修订号

Windows 获取批处理文件变量的SVN修订号,windows,batch-file,svn,Windows,Batch File,Svn,希望从批处理文件中的svn分支获取上次更改的修订 echo on set svnUrl=%1 set releaseName=%2 set buildNumber=%3 for /f %%i in ('svn info %svnUrl%/branches/%releaseName% -r HEAD ^| FINDSTR "^Last.Changed.Rev:"') do set revisionNumber=%%i echo %revisionNumber% 但我得到的是最后一个字,而不

希望从批处理文件中的svn分支获取上次更改的修订

echo on
set svnUrl=%1
set releaseName=%2
set buildNumber=%3


for /f %%i in ('svn info  %svnUrl%/branches/%releaseName% -r HEAD ^| FINDSTR "^Last.Changed.Rev:"') do set revisionNumber=%%i
echo %revisionNumber%
但我得到的是最后一个字,而不是最后一次修改Rev:10

在控制台中执行命令

D:\svn info http://desktop-24i22vk:81/svn/Test/branches/TST-1 -r HEAD
我正在接收控制台输出:

Path: TST-1
URL: http://desktop-24i22vk:81/svn/Test/branches/TST-1
Relative URL: ^/branches/TST-1
Repository Root: http://desktop-24i22vk:81/svn/Test
Repository UUID: 57a8baac-304e-e54b-94b3-b7d049dce932
Revision: 17
Node Kind: directory
Last Changed Author: import
Last Changed Rev: 10
Last Changed Date: 2016-07-22 15:26:37 +0200 (pá, 22 čvc 2016)
我想得到最后一次修改的版本号,这里是10。我想把最后一次修改的整行文本Rev:10存储为变量,然后替换文本以获得唯一的数字。我会很感激其他(windows批处理)方法如何获得它。
谢谢。

FOR/F的默认行为是将每行拆分为标记,由空格和/或制表符分隔,并仅返回每行的第一个标记。这就解释了为什么你只能得到“最后一个”

通过将delims选项设置为nothing,可以保留整个行

for /f "delims=" %%i ...
但你不想要整条线。您只需要最后一(4)个代币。所以

for /f "tokens=4" %%i ...
可以使用
svn信息-r标题--显示项目修订版

要仅获取作为输出的头版本…

请参见语法:
中的/f“tokens=4”%%i…
谢谢,这是一个很好的解决方案。