[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 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。
请各位高手帮我看看是怎么回事? 这样才能实现我想要的功能。

@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

TOP

返回列表