Frage

Ich versuche zur Zeit für die Begehung zu SVN unsere bereits bestehenden (und arbeitet) vor commit Batch-Datei zu erweitern. Die ersten Teilblöcke verpflichten alle, dass keine Kommentare hat und funktioniert wie erwartet. Der zweite Teil ist ein attmept Benutzer begehen SUO Dateien zu blockieren, aber dies derzeit alle Commits blockieren.

Mein Verständnis von DOs Scripting ist nicht groß, so dass ich vermute, dass es meine Nutzung des FindStr sein kann?

Kann mir jemand helfen?

"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
War es hilfreich?

Lösung

findstr 0 zurück, wenn etwas gefunden wurde, und 1, wenn nichts gefunden wurde. Sie Ihren Scheck gerade umgekehrt ist.

Kein Batch-foo erforderlich, auch unter Windows die Shell interaktiv ist, so dass Sie es heraus lebendig ausprobieren können:

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

>echo %ERRORLEVEL%
0

>dir | findstr ".slngimpf"

>echo %ERRORLEVEL%
1

Btw, es einfacher zu schreiben

if errorlevel 0 andthencontinuewithwhatever

Auf diese Weise kann Skript ist auch stabil gegenüber dem ominösen:

set errorlevel=0

die dann jeden künftigen Versuch zerstört in einem richtigen Weg, um die Errorlevel mit% Errorlevel% auszudrucken.

( Bearbeiten ) Wichtiger Hinweis: ich habe vergessen zu sagen, dass die if errorlevel Syntax überprüft, ob die Errorlevel größer oder gleich auf den Wert zu sein getestet. So, um es richtig zu nutzen, müssen Sie immer zu überprüfen, für den höchsten Fehler zuerst, wie:

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

Andere Tipps

Nicht genau die Antwort, die Sie suchen, aber Sie können alle blockieren * .suo Dateien mit der global-ignores Option.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top