我尝试为我的 svn 存储库准备一个提交后挂钩。因此,我需要使用命令获得的最后一次提交的日志消息svnlook log -r %REV% %REPOS%
。用适当的参数填充片段,我得到以下多行日志消息:
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.
但是换行符消失了,但我需要进一步处理。