Logmeldung von svnlook über Windows Batch erhalten

Ich versuche, einen Post-Commit-Hook für mein SVN-Repository vorzubereiten. Daher benötige ich die Protokollmeldung vom letzten Commit, die ich mit dem Befehl erhaltesvnlook log -r %REV% %REPOS%. Wenn ich das Snippet mit den entsprechenden Parametern fülle, erhalte ich die folgende mehrzeilige Protokollmeldung:

<code>This
is
my
transaction.
</code>

Das funktioniert soweit gut. Jetzt habe ich das in eine .bat-Datei geschrieben:

<code>@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%
</code>

Beim Ausführen des Skripts nur die letzte Zeiletransaction. wird wiederholt. Die for-Schleife ist ein Ausschnitt, aus dem ich dachte, sie würde die Ausgabe von svnlook einlesen%var%.

Mein Ansatz ist es, die Protokollnachricht in einer Variablen abzurufen, die ich als Parameter an eine andere exe-Datei übergebe. Aber es wird nicht funktionieren. Ich weiß nicht, wie ich die Schleife richtig benutzen soll.

Die Protokollnachricht sollte als Parameter an eine andere exe-Datei übergeben werden.

Ich habe das Skript folgendermaßen geändert (@thx PA.)

<code>@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!
</code>

Die Ausgabe ist jetztThis is my transaction. Aber die Zeilenumbrüche sind weg aber ich brauche die zur Weiterverarbeitung.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage