svnリポジトリのコミット後フックを準備しようとしています。したがって、コマンドで取得した最後のコミットからのログメッセージが必要svnlook log -r %REV% %REPOS%
です。スニペットに適切なパラメータを入力すると、次のマルチラインログメッセージが表示されます。
This
is
my
transaction.
これは今のところうまく機能します。今、私はこれを.batファイルに入れます:
@ECHO OFF
REM just for testing purpose...
SET REPOS=C:\repo
SET REV=40
FOR /F %%i in ('svnlook log -r %REV% %REPOS%') do SET VAR=%%i
ECHO %VAR%
スクリプトを実行すると、最後の行だけtransaction.
がエコーされます。forループは私が考えたスニペットであり、svnlookの出力をに読み込みます%var%
。
私のアプローチは、ログメッセージを変数で取得し、それをパラメーターとして別のexeファイルに渡すことです。しかし、それは機能しません。ループを正しく使用する方法がわかりません。
ログメッセージは、パラメータとして別のexeファイルに送信する必要があります。
スクリプトを次のように変更しました(@thxPA)。
@ECHO OFF
setlocal enabledelayedexpansion
SET REPOS=C:\repo
SET REV=40
SET MSG=
FOR /F %%i in ('svnlook log -r %REV% %REPOS%') do SET VAR=!VAR! %%i
ECHO !VAR!
出力はこれThis is my transaction.
で終わりですが、改行はなくなりましたが、さらに処理する必要があります。