我尝试为我的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