Board logo

标题: [文本处理] svn强制写日志 的批处理问题 求教 [打印本页]

作者: firemoon    时间: 2013-12-26 19:31     标题: svn强制写日志 的批处理问题 求教

我在windows平台使用svn进行版本控制,为了防止提交代码的时候不写日志,想在svn hook里加上强制提交日志的功能,其实就是svn在提交代码前会去执行一段批处理文件去检查日志字符串的长度,如果小于10个字符,就绝交提交并提示。 批处理代码如下:

@echo off
setlocal
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 10 characters
"D:\Program Files\VisualSVN Server\bin/svnlook" log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo 提交必须写10个字以上的日志!>&2
exit 1

发现即使是少于10个字符也能提交成功,后来发现是 findstr ".........." 的事,即使少于2个字符 findstr 查找仍然是成功的 errorleve 还是等于0。
"D:\Program Files\VisualSVN Server\bin/svnlook" log "%REPOS%" -t "%TXN%" 返回的是日志文件里的字符串,然后传给findstr。
请各位高手帮我看看是怎么回事? 这样才能实现我想要的功能。
作者: firemoon    时间: 2013-12-26 19:39

@echo off
set t="k"
echo %t% | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
echo right
goto exit
:err
echo erro
:exit

这个不管 字符串多长 始终是right  我想让字符串t小于10的时候 返回error




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2