varios sirven script que programacion por para lotes los ejemplos ejecutar crear como comandos comando batch bat archivos archivo batch-file error-handling errorlevel

batch-file - script - para que sirven los archivos batch



ConfiguraciĆ³n de programaciĆ³n por lotes ERRORLEVEL del comando FIND fallido (3)

Esta es la lógica que he usado en un archivo BAT previamente.

find "string" "test.txt" > NUL & IF ERRORLEVEL 1 ( ECHO String was NOT found ) ELSE ( ECHO String was found )

Puede colocar los comandos que desee dentro de los bloques IF / ELSE.

He encontrado la necesidad de informar un nivel de error a un programa que llama a los scripts por lotes.

El script creará un archivo de registro CSV que me gustaría verificar para mostrar si el script se ejecutó correctamente.

Lo que me gustaría decir es algo así como

IF NOT FIND "[ERR" "test.csv"

o decir, que si la cadena "[ERR" no está en la salida ERRORLEVEL = 0 ELSE ERRORLEVEL = 1

Espero que esto tenga sentido. Estoy seguro de que es simple, pero establecer niveles de error parece ser un dolor real en el a $ se!


FIND establecerá ERRORLEVEL en 0 si se encuentra, 1 si no se encuentra. Para invertir la lógica, simplemente use la opción / V.

find /v "[ERR" "test.csv" >nul

Si tiene un conjunto de variables que indica el nivel de error, puede usar EXIT / B para establecer el ERRORLEVEL

set err=1 exit /b %err%


Tenga en cuenta que el comando IF tiene la lógica de que devuelve verdadero si ERRORLEVEL es mayor o igual que el siguiente número. Asi que

IF ERRORLEVEL 0 (...

devuelve verdadero para todos los comandos FIND. Lo que necesita si solo quiere probar si una frase está en un archivo:

find "string" "test.txt" > NUL & IF NOT ERRORLEVEL 1 ECHO String was found

Me llevó años trabajar eso!