Pregunta

Actualmente estoy tratando de ampliar nuestra ya existente (y de trabajo) antes de comprometerse archivo por lotes para comprometerse con SVN. Los primeros bloques parcial Cualquiera que comprometerse no tiene comentarios y funciona como se espera. La segunda parte es una attmept bloquear a los usuarios que cometen los archivos SUO, sin embargo, esto está bloqueando todos los envíos.

Mi comprensión de las oficinas descentralizadas de secuencias de comandos no es muy grande por lo que sospecho que puede ser mi uso de la findstr?

¿Alguien puede ayudar?

"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
¿Fue útil?

Solución

findstr devuelve 0 si algo se ha encontrado, y 1 si no se ha encontrado. Usted acaba invertida su cheque.

No se requiere lotes-foo, incluso en Windows el shell es interactivo, por lo que puede intentar salir con vida:

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

>echo %ERRORLEVEL%
0

>dir | findstr ".slngimpf"

>echo %ERRORLEVEL%
1

Por cierto, resulta más fácil escribir

if errorlevel 0 andthencontinuewithwhatever

De este modo, la escritura también es estable frente al mal agüero:

set errorlevel=0

que luego destruir cualquier intento futuro para imprimir el nivel de error de% errorlevel% de una manera correcta.

( editar ) Nota importante: Se me olvidaba decir que el if errorlevel comprobaciones de sintaxis si el nivel de error es mayor o igual con el valor siendo probado para. Así que para usar correctamente, debe comprobar siempre para el más alto de error en primer lugar, como:

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

Otros consejos

No es exactamente la respuesta que busca, pero se puede bloquear todo * .suo archivos con el opción global-ignores .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top