Sådan finder du ud af, om en fil indeholder en given streng ved hjælp af Windows kommandolinje

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at oprette en batch (.bat) -fil til Windows XP for at gøre følgende:


If (file.txt contains the string 'searchString') then (ECHO found it!) 
ELSE(ECHO not found)


Indtil videre har jeg fundet en måde at søge efter strenge inde i en fil ved hjælp af kommandoen FIND , som returnerer linjen i filen, hvor den finder strengen, men ikke kan foretage en betinget kontrol af det.


Dette virker f.eks. Ikke.


IF FIND "searchString" file.txt ECHO found it!


Det gør heller ikke


IF FIND "searchString" file.txt=='' ECHO not found


Eventuelle ideer om hvordan dette kan gøres?

Bedste reference


Se dette indlæg.

Accepteret løsning synes også den rigtige for dig.

Andre referencer 1


Fra andet indlæg:


    find /c "string" file
    if \%errorlevel\% equ 1 goto notfound
    echo found
    goto done
    :notfound
    echo notfound
    goto done
    :done


Eller noget som: hvis ikke fundet skriv til fil.


    find /c "\%\%P" file.txt  || ( echo \%\%P >> newfile.txt )


Eller noget lignende: hvis fundet skriv til fil.


    find /c "\%\%P" file.txt  && ( echo \%\%P >> newfile.txt )


Eller noget som:


    find /c "\%\%P" file.txt  && ( echo found ) || ( echo not found )

Andre referencer 2


Jeg har brugt en DOS kommandolinje til at gøre dette.
To linjer, faktisk. Den første til at gøre den 'aktuelle mappe' den mappe, hvor filen er - eller rodmappen til en gruppe mapper, hvor filen kan være. Den anden linje gør søgningen.


CD C:TheFolder
C:TheFolder>FINDSTR /L /S /I /N /C:"TheString" *.PRG


Du kan finde detaljer om parametrene på dette link. [10]


Håber det hjælper!