首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在后提交钩子批处理文件中更改SVNLOOK

在后提交钩子批处理文件中更改SVNLOOK
EN

Stack Overflow用户
提问于 2014-05-04 10:20:39
回答 1查看 1.6K关注 0票数 0

我在打印更改列表时遇到了麻烦。每次我运行我的脚本并检查其值时,它都是空的。

代码语言:javascript
复制
postcommithook.bat
set REPOS=%1
set REV=%2
set TXN_NAME=%3
set LF = ^

SET ThisScriptsDirectory=%~dp0

set svnlook = "C:\Program Files\TortoiseSVN\bin\"

for /f "tokens=*" %%a in ('%svnlook% svnlook author -r %REV% %REPOS%') do set AUTH_NAME=%%a

setlocal enabledelayedexpansion

set MSG = for /f %%i in ('svnlook changed -r %REV% %REPOS%') do (
SET "VAR=!VAR!!LF%%i"
SET "PAR=!PAR!^^!LF!!LF!%%i"
)
set DIRS_CHANGED = !VAR!
endlocal

SET PowerShellScriptPath=%ThisScriptsDirectory%emailer.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%' '%REPOS%' '%REV%' '%TXN_NAME%' '%AUTH_NAME%' '%DIRS_CHANGED%'";

我知道我在循环中的某个地方做了一个错误,在这里我调用了更改函数。如何才能获得更改目录的列表并将其传递给mailer脚本?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-05 11:30:33

在这里回答我自己的问题:我已经删除了命令'svn‘被执行的循环。相反,我将输出存储在一个单独的文件中,然后通过powershell/vbscript文件开始处理它,以便生成电子邮件。

取代以下案文:

代码语言:javascript
复制
svnlook changed %REPOS% -r %REV% > %ThisScriptsDirectory%tmp_log.txt

而不是

代码语言:javascript
复制
setlocal enabledelayedexpansion
set MSG = for /f %%i in ('svnlook changed -r %REV% %REPOS%') do (
SET "VAR=!VAR!!LF%%i"
SET "PAR=!PAR!^^!LF!!LF!%%i"
)
set DIRS_CHANGED = !VAR!
endlocal

谢谢文卡特。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23455071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档