2013-09-05 2 views
0

Je souhaite écrire un script de lot Windows pour les éléments suivants.Rechercher une chaîne dans un fichier journal dynamique

J'ai des fichiers journaux sous chemin C:\test\ qui sont créés ce jour ayant de tous les jours de ce jour-là en leur nom. c'est-à-dire

u_ex130828.log  (created on 28/08/2013) 
u_ex130827.log  (created on 28/08/2013) 
u_ex130826.log  (created on 28/08/2013) 

Je souhaite rechercher un message d'erreur spécifique dans tous les fichiers créés aujourd'hui uniquement. Et dès que le message d'erreur trouvé puis immédiatement ajouter la ligne complète ayant un message d'erreur dans un fichier texte nommé Output.txt et si le message d'erreur ne trouve pas alors ne pas ajouter le fichier Output.txt.

Répondre

2

Cela devrait faire ce que vous avez besoin:

@echo off 
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set "dt=%%a" 
set "YY=%dt:~2,2%" 
set "MM=%dt:~4,2%" 
set "DD=%dt:~6,2%" 

set "today=%YY%%MM%%DD%" 

findstr /i /c:"File attached above for last 2 occasions." "C:\inetpub\logs\LogFiles\W3SVC1\*%today%.log" > "C:\inetpub\logs\LogFiles\W3SVC1\output.txt" 
+0

Super ..! .. Son fonctionnement..Merci une tonne .. !! Quels changements je dois faire ci-dessus si je veux rechercher une autre chaîne avec cette chaîne en utilisant OU. – Sunny

+1

Si vous voulez rechercher une autre chaîne, ajoutez une seconde chaîne '/ c:" pour trouver "' après celle qui est déjà là. – foxidrive

1
cd /d C:\inetpub\logs\LogFiles\W3SVC1\ 
set "today=%date:~-4%%date:~-10,2%%date:~-7,2%" 
for %%a in (*%today%.log) do (
    for /f "delims=" %%b in ('findstr /c:"File attached above for last 2 occasions." "%%~a"') do (
     (echo %%~a: %%~b)>>Output.txt 
    ) 
) 

Modifiez le modèle de recherche de fichier *%today%.log pour vos besoins.

+0

Merci beaucoup pour votre grande aide .. !! :) – Sunny

+0

Je vais lancer une note d'avertissement ici. Petits fichiers, c'est bien. Si vous essayez de rechercher de gros fichiers (500 Mo +), vous pouvez éventuellement ralentir un serveur. Il existe des outils comme Grep, Hjsplit et d'autres méthodes. – Leptonator

Questions connexes