J'essaie de créer un fichier batch (.bat) pour Windows XP pour faire ce qui suit:
If (file.txt contains the string 'searchString') then (ECHO found it!)
ELSE(ECHO not found)
Jusqu'à présent, j'ai trouvé un moyen de rechercher des chaînes dans un fichier en utilisant la commande FIND qui renvoie la ligne du fichier où il trouve la chaîne, mais suis incapable de faire une vérification conditionnelle à ce sujet.
Par exemple, cela ne fonctionne pas.
IF FIND "searchString" file.txt ECHO found it!
Cela non plus:
IF FIND "searchString" file.txt=='' ECHO not found
Des idées sur la façon dont cela peut être fait?
De l'autre poste:
find /c "string" file
if %errorlevel% equ 1 goto notfound
echo found
goto done
:notfound
echo notfound
goto done
:done
Ou quelque chose comme: si pas trouvé, écrivez dans le fichier.
find /c "%%P" file.txt || ( echo %%P >> newfile.txt )
Ou quelque chose comme: si trouvé, écrivez dans le fichier.
find /c "%%P" file.txt && ( echo %%P >> newfile.txt )
Ou quelque chose comme:
find /c "%%P" file.txt && ( echo found ) || ( echo not found )
J'ai utilisé une ligne de commande [~ # ~] dos [~ # ~] pour ce faire. Deux lignes, en fait. Le premier à faire du "répertoire courant" le dossier où se trouve le fichier - ou le dossier racine d'un groupe de dossiers où le fichier peut se trouver. La deuxième ligne fait la recherche.
CD C:\TheFolder
C:\TheFolder>FINDSTR /L /S /I /N /C:"TheString" *.PRG
Vous pouvez trouver des détails sur les paramètres sur ce lien .
J'espère que cela aide!