【发布时间】:2012-05-10 00:40:25
【问题描述】:
我尝试为我的 svn 存储库准备一个提交后挂钩。因此,我需要使用命令svnlook log -r %REV% %REPOS% 获得的上次提交的日志消息。用适当的参数填充 sn-p 我得到以下多行日志消息:
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-loop 是一个我认为的 sn-p,它会将 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. 但是换行符已经消失了,但我需要进一步处理。
【问题讨论】:
标签: windows batch-file logging multiline svnlook