目前我正在试图扩大我们现有(和工作)前提交的批处理文件提交到SVN。第一部分阻挡任何承诺不会有任何意见和按预期工作。第二部分是阻止用户提交SUO文件的attmept,但是这是目前阻止所有的提交。

我民政脚本的理解也不是很大,所以我怀疑它可能是我的FINDSTR的使用情况如何?

谁能帮助?

"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9]
IF %ERRORLEVEL% EQU 0 GOTO OK
echo "Commit Comments are Required" >&2
exit 1
:OK
"C:\Program Files\VisualSVN Server\bin\svnlook.exe" diff -t %2 %1 | FindStr /R "[a-zA-Z]\.suo"
IF %ERRORLEVEL% EQU 0 exit 0
echo "SUO files cannot be committed" >&2
exit 1
有帮助吗?

解决方案

如果没有已经发现如果某物已经发现

FINDSTR返回0和1。你只是倒你的支票。

无需批量FOO,即使是在Windows shell是交互的,所以你可以尝试活着出来:

>dir | findstr ".sln"
15.01.2009  16:37            33.844 Project.sln

>echo %ERRORLEVEL%
0

>dir | findstr ".slngimpf"

>echo %ERRORLEVEL%
1

顺便说一下,可以更轻松地编写

if errorlevel 0 andthencontinuewithwhatever

这样你的脚本也对不祥稳定:

set errorlevel=0

然后将破坏任何未来的尝试打印出用%ERRORLEVEL%的错误级别以正确的方式。

(的修改)重要提示:我忘了说,在 if errorlevel 语法检查错误级别是否是<强>大于或等于以该值是测试。因此,要正确地使用它,你必须经常检查最大误码第一,如:

someCommand
if errorlevel 10 ...
if errorlevel 9 ...
if errorlevel 0 ...

其他提示

不完全是你正在寻找的答案,但可以阻止所有名为.suo *文件具有的全局忽略选项。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top