Domanda

Al momento sto cercando di estendere la nostra già esistente (e di lavoro) pre commettere file batch per commettere a SVN. Le prime file parziale Qualsiasi commettere che non dispone di commenti e funziona come previsto. La seconda parte è un attmept di bloccare gli utenti commettono file Suo, tuttavia questo è attualmente bloccando tutti i commit.

La mia comprensione della DO di scripting non è grande quindi ho il sospetto che potrebbe essere il mio utilizzo del Findstr?

Qualcuno può aiutarmi?

"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
È stato utile?

Soluzione

findstr restituisce 0 se è stato trovato qualcosa, e 1 se nulla è stato trovato. Basta invertita l'assegno.

Nessun lotto-foo richiesto, anche su Windows la shell è interattiva, in modo da poter provare vivo:

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

>echo %ERRORLEVEL%
0

>dir | findstr ".slngimpf"

>echo %ERRORLEVEL%
1

A proposito, è più facile da scrivere

if errorlevel 0 andthencontinuewithwhatever

In questo modo si script è anche stabile contro l'inquietante:

set errorlevel=0

che sarà poi distruggere ogni futuro tentativo di stampare l'errorlevel con% errorlevel% in modo corretto.

( modifica ) Nota importante: Ho dimenticato di dire che il if errorlevel controlli di sintassi se l'errorlevel è maggiore o uguale per il valore di essere testati per. Quindi utilizzare correttamente, è necessario sempre controllare il più alto errore di prima, come:

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

Altri suggerimenti

Non è esattamente la risposta che state cercando, ma è possibile bloccare tutti * .suo file con il opzione globale-ignora .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top