Ho riscontrato la necessità di segnalare un livello di errore a un programma che chiama script batch.Impostazione di programmazione batch ERRORLEVEL da comando FIND fallito
Lo script creerà un file di registro CSV che desidero controllare per visualizzare se lo script è stato eseguito correttamente.
Quello che vorrei dire è qualcosa di simile
IF NOT FIND "[ERR" "test.csv"
o di dire, che se la stringa "[ERR"
non è nell'output ERRORLEVEL = 0 ELSE ERRORLEVEL = 1
Spero che questo ha un senso. Sono sicuro che è semplice, ma impostare i livelli di errore sembra essere un dolore reale in un $ se!
Ciao dbenham, grazie per la tua risposta ma sfortunatamente aggiungendo/V sembra che il parametro Errorlevel sia sempre impostato su 0. Inoltre, ho provato a utilizzare questo file batch per testare la seconda risposta.FIND "[ERR" " test.csv "SET MYERROR = 1 EXIT/B% MYERROR% dovrebbe sempre restituire 1 quando echo% errorlevel% ma lo farà solo se [ERR non è nel file test.csv! Sto facendo qualcosa di sbagliato con la sintassi? Tutte e 3 le affermazioni sono su linee separate ma non riesco a iniziare una nuova riga per rappresentarlo! grazie in anticipo della tua risposta! –
dbenham! Dopo averlo ripetuto di nuovo, ho scoperto che avevo fatto quello che è un errore di scolaro DOS! Ho messo impostato err = 1 invece di err = 1. Per chiunque altro stia leggendo questo, ciò significa che, quando si digita SET ERR = 1, il nome della variabile è "ERR" e non "ERR". Grazie! –
Specificare '/ V' causerà solo un errore (ERRORLEVEL == 1) se * tutte * le righe nel file contengono il valore specificato. Inverte il test da * contiene x * a * non contiene x *, con ERRORLEVEL pari a 0 se vengono trovate linee che corrispondono al test. – Corey