Lot de Script pour lire chaque ligne du fichier texte et de retourner une valeur?
Je veux écrire un script batch qui doit lire un fichier texte ligne par ligne et de recherche pour un mot clé.
Si la clé est trouvée, elle doit retourner la valeur 0 sinon il doit retourner 1.
Comme cela, il devrait garder en incrémentant la valeur jusqu'à la fin du fichier.
La sortie doit aller à un fichier.
L'exemple de journal est comme suit,
Website is available HTTP/1.1 200 OK
Website is available HTTP/1.1 200 OK
Website is available HTTP/1.1 200 OK
Website is available HTTP/1.1 200 OK
Website is available HTTP/1.1 200 OK
Website is available HTTP/1.1 200 OK
Fondamentalement, je veux compter le nombre de fois que le site web a échoué. Donc, si le site est ok, alors il doit retourner la valeur " 0 "si elle n'est pas alors la valeur "1".
Dernier mais non le moins, je veux le nombre total de fois où le site a échoué.
- Vous cherchez un DOS script Batch ou un shell script Unix? Et quel sera le journal de ressembler quand il échoue?
- Cela peut certainement être fait dans un fichier de commandes, mais je voudrais demander pourquoi? Pourquoi ne pas apprendre quelque chose d'un peu plus utile si vous avez quelque chose à apprendre, de toute façon?
Vous devez vous connecter pour publier un commentaire.
Sur Unix
Pour Windows .chauve-souris:
donnera la liste de toutes les lignes qui n'ont pas (/V) commencer (/B) la traduction littérale (/C:) chaîne de caractères "HTTP/1.1 2".
Depuis HTTP codes de réussite sont dans les 200 bloc (par exemple, 203 pour le cache), ce ne liste non-réponses de réussite. FINDSTR a quelques regex soutien, mais il est assez faible, (pas de groupement ou de l'alternance, en particulier), donc si vous voulez filtrer plusieurs codes de réponse à l'aide de FINDSTR vous avez de la chaîne d'eux, par exemple, également, de les filtrer Auth échecs:
Sur le DOS il serait la ligne suivante. Remplacer "l'ÉCHEC de la CHAÎNE" avec tout ce un ligne contiendra lorsque le serveur est mort.
FIND /C "FAIL STRING" log.txt
Ce sorties quelque chose comme ce qui suit lorsqu'il y a deux lignes contenant "l'ÉCHEC de la CHAÎNE"
---------- LOG.TXT: 2
Vous pouvez également utiliser %ERRORLEVEL% afin de déterminer s'il y avait des échecs. Comme ceci:
FIND /C "FAIL STRING" log.txt
IF ERRORLEVEL 1 ECHO Everything is A-OK
IF NOT ERRORLEVEL 1 ECHO There were failures
Bonne Chance,
Randy