2009-04-28 9 views
1

J'ai beaucoup de fichiers journaux qui ont besoin de rechercher certaines chaînes et je me demandais si je pouvais faire un fichier batch pour automatiser ce travail pour moi? Tout ce que j'ai besoin de faire est de localiser le journal le plus récent dans un certain répertoire puis rechercher la chaîne dans ce fichier.Fichier batch pour rechercher une chaîne dans le fichier le plus récent

J'ai trouvé le code ci-dessous sur ce site qui fonctionne bien pour ouvrir le fichier journal le plus récent mais malheureusement je ne connais pas assez la programmation par lots pour modifier le code pour rechercher la chaîne et afficher la ligne.

for /f "usebackq delims=" %%i in (`dir /b /o-d`) do @call "%%i"&goto :eof 

Toute aide serait grandement appréciée.

Répondre

7

Ajouter un findstr à la fin:

or /f "usebackq delims=" %%i in (`dir /b /o-d`) do findstr searchforthisstring %%i 

Ce que cela fait est la recherche de "searchforthisstring" les fichiers trouvés par

dir /b/o-d 

Quels fichiers de la liste (/ b = nommer tout simplement pas autres informations et/ou ordre de date inverse

2

Dans un premier temps, définissez quel est le fichier que vous voulez, si /od ne fonctionne pas, essayez /o-d ...

for /f %%i in ('dir \path\to\files\ /b /od') do set myfile=%%i

... et faites attention parce que myfile viendra sans voie.

Utilisez ensuite for /f "tokens=*" pour lire chaque ligne du fichier complet, et findstr pour rechercher votre STRING ...

for /f "tokens=*" %%i in (\path\to\files\%myfile%) do (echo %%i | findstr STRING >> OUTPUTFILE)

Si vous voulez OUTPUTFILE être écrasé chaque fois que vous exécutez le code, utilisez un célibataire >.

Si vous ne voulez pas de fichier mais que vous voyez la sortie à l'écran, supprimez simplement le code >> OUTPUTFILE.

Questions connexes