-
05-09-2019 - |
题
目前我正在试图扩大我们现有(和工作)前提交的批处理文件提交到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 *文件具有的全局忽略选项。
不隶属于 StackOverflow