SVNLOOK在后命令钩子-批处理文件中更改

SVNLOOK在后命令钩子-批处理文件中更改,svn,batch-file,tortoisesvn,hook,post-commit-hook,Svn,Batch File,Tortoisesvn,Hook,Post Commit Hook,打印更改列表时遇到问题。每次我运行脚本并检查值时,它都是空的 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% %REP

打印更改列表时遇到问题。每次我运行脚本并检查值时,它都是空的

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%'";
我知道我在调用changes函数的循环中的某个地方出错了。我如何才能获得已更改目录的列表并将其传递给mailer脚本


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

替换以下内容:

svnlook changed %REPOS% -r %REV% > %ThisScriptsDirectory%tmp_log.txt
而不是

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
谢谢,
文卡特

LF
不会在此处包含新行;您必须删除
=
-符号周围的空格,并且在
set LF=^
行后面必须有两行空行。。。