문제

현재 SVN에 커밋하기 위해 이미 존재하는 (및 Working) 프리 커밋 배치 파일을 확장하려고합니다. 첫 번째 부분은 의견이없고 예상대로 작동하는 모든 커밋을 차단합니다. 두 번째 부분은 SUO 파일을 커밋하는 사용자를 차단하기위한 ATTMEPT이지만 현재 모든 커밋을 차단하고 있습니다.

DOS 스크립팅에 대한 나의 이해가 좋지 않아서 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. 당신은 방금 수표를 반전 시켰습니다.

창문에서도 쉘은 대화식이므로 배치 푸는 필요하지 않으므로 살아있는 시도를 시도 할 수 있습니다.

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

>echo %ERRORLEVEL%
0

>dir | findstr ".slngimpf"

>echo %ERRORLEVEL%
1

BTW, 글을 쉽게 작성합니다

if errorlevel 0 andthencontinuewithwhatever

이렇게하면 스크립트가 불길한 것에 대해 안정적입니다.

set errorlevel=0

그런 다음 올바른 방식으로 % 오류 레벨 %로 오류 레벨을 인쇄하려는 미래의 시도를 파괴 할 것입니다.

(편집하다중요한 참고 사항 : 나는 if errorlevel 구문은 오류 레벨이 있는지 확인합니다 더 크거나 동일합니다 테스트중인 값에. 따라서 올바르게 사용하려면 항상 가장 높은 오류를 먼저 점검해야합니다.

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

다른 팁

당신이 찾고있는 대답은 정확히 있지 않지만 모든 *.suo 파일을 글로벌-디자인 옵션.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top