2016-07-22 16 views
1

バッチファイル内の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% 

しかし、私が代わりに最後に変更改訂の最後の単語を取得しています。コンソールで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をvariaに変更しました文字を置き換えて数字だけを取得します。私は他の(Windowsのバッチ)でもそれを取得する方法に感謝します。 ありがとう

+3

[for /f](http://ss64.com/nt/for_cmd.html)の構文:for/f "tokens = 4" %% i in ....を参照してください。 。 ' – wOxxOm

+0

ありがとう、素晴らしい解決策。 –

答えて

1

FOR/Fのデフォルトの動作は、各行をスペースやタブで区切られたトークンに分割し、各行の最初のトークンのみを返すことです。それはあなたが「ラスト」だけを得ている理由を説明します。

あなたは何

for /f "delims=" %%i ... 

にdelimsオプションを設定することにより、全体のラインを維持する可能性がしかし、あなたは全体のラインを望んでいません。最後の(4番目の)トークンが必要です。だから...

関連する問題