gpt4 book ai didi

windows - 通过 Windows 批处理从 svnlook 获取日志消息

转载 作者:可可西里 更新时间:2023-11-01 09:30:50 27 4
gpt4 key购买 nike

我尝试为我的 svn 存储库准备一个提交后 Hook 。因此,我需要使用命令 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. 但是换行符不见了,但我需要进一步处理。

最佳答案

如果你还需要换行符,你可以在连接行时添加它们。

@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 - 通过 Windows 批处理从 svnlook 获取日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10381572/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com