我试图在pre commithook中获取完整的提交注释。以下是我的代码,
set REPOS=%1
set TXN=%2
SET comment
FOR /F "tokens=*" %%g IN ('svnlook log %REPOS% -t %TXN%') do (SET comment=%comment%%%g)
但是我只能获取日志的最后一行。有什么办法可以获取完整的日志(多行)?
答案 0 :(得分:2)
您基本上有延迟的扩展问题。这是批处理文件在执行代码行之前如何扩展变量的古怪事物之一。因此,您有两种选择来解决此问题。
启用延迟扩展并使用感叹号引用您的变量。
from utils import string # instead of import string
string.generate_random_letters()
通过setlocal enabledelayedexpansion
FOR /F "tokens=*" %%g IN ('svnlook log %REPOS% -t %TXN%') do (SET comment=!comment!%%g)
命令使用一些技巧。您可以将百分比符号加倍,并使用CALL命令,该命令为您提供了两个阶段的变量扩展。
CALL