通过Windows批处理从svn​​look获取日志消息

前端之家收集整理的这篇文章主要介绍了通过Windows批处理从svn​​look获取日志消息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试为我的svn存储库准备一个post-commit钩子.因此,我需要使用命令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%

当我执行脚本时只有最后一行事务.是的回应. 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!

输出现在是这是我的交易.但是线路已经消失,但我需要进一步处理.

如果您还想要换行符,可以在连接行时添加它们.
@ECHO OFF
setlocal enabledelayedexpansion
set LF=^


rem ** The two empty lines are NECESSARY

SET REPOS=C:\Users\CH.ROSESOFT\Downloads\t3\repo
SET REV=40

SET MSG=
FOR /F %%i in ('svnlook log -r %REV% %REPOS%') do (
    SET "VAR=!VAR!!LF!%%i"
    SET "PAR=!PAR!^^!LF!!LF!%%i"
)
ECHO !VAR!
myProgram.exe !par!

猜你在找的Windows相关文章