[英]Get SVN revision number to batch file variable
想要從批處理文件中的 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%
但是我得到的是 Last 而不是 Last Changed 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。我想將整行文本 Last Changed Rev: 10 存儲到變量,然后替換文本以僅獲取數字。 我什至會欣賞其他(Windows 批處理)方法如何獲得它。 謝謝
FOR /F 的默認行為是將每一行分成標記,以空格和/或制表符分隔,並僅返回每行的第一個標記。 這解釋了為什么你只得到“最后”。
您可以通過將 delims 選項設置為空來保留整行
for /f "delims=" %%i ...
但你不想要整條線。 您只需要最后一個(第 4 個)令牌。 所以...
for /f "tokens=4" %%i ...
可以使用svn info -r HEAD --show-item revision
來僅獲取 Head rev 作為輸出...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.