我嘗試爲我的svn存儲庫準備一個post-commit掛鉤。因此,我需要使用命令svnlook log -r %REV% %REPOS%
從上次提交的日誌消息。用相應的參數填充片段我得到以下多行日誌消息:通過Windows批處理從svnlook獲取日誌消息
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文件作爲參數。
我修改劇本以下(@thx PA)
@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.
但斷行都走了,但我需要作進一步處理。
這很好,謝謝。但有沒有辦法將這個多行變量作爲參數傳遞給我的exe文件? – Cornertrap
@Cornertrap - 是的,不,也許......這有點棘手,但可能。我將編輯我的帖子 – jeb
謝謝,這解決了問題! – Cornertrap