SVNLOOK изменен в зацепке postcommit - командный файл

У меня проблемы с печатью списка изменений. Каждый раз, когда я запускаю свой скрипт и проверяю значение, оно пустое.

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%'";

Я понимаю, что я делаю ошибку где-то в цикле, где я вызываю функцию изменений. Как я могу получить список измененных каталогов и передать его сценарию почтовой программы?

заранее спасибо

1 ответ

Решение

Отвечая на мой собственный вопрос: я удалил цикл, в котором выполняется команда '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

Спасибо, Венкат.

Другие вопросы по тегам