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.