Ricerca…


Ricerca di stringhe di base

Il comando FIND può scansionare file di grandi dimensioni riga per riga per trovare una determinata stringa. Non supporta i caratteri jolly nella stringa di ricerca.

find /i "Completed" "%userprofile%\Downloads\*.log" >> %targetdir%\tested.log

TYPE scan2.txt | FIND "Failed" /c && echo Scan failed || echo Scan Succeeded

Il comando FINDSTR ha più funzioni disponibili e supporta la ricerca di espressioni regolari (REGEX) con caratteri jolly nella stringa di ricerca.

FINDSTR /L /C:"Completed" Results.txt

echo %%G | findstr /r /b /c:"[ ]*staff.*" >nul && echo Found!

Vedi le fonti di aiuto FIND e FINDSTR per maggiori informazioni.

Utilizzando i risultati di ricerca

Lo script seguente mostra una tecnica di file diviso più avanzata, in cui la funzione FOR scorre un elenco di file in una directory e ogni contenuto del file viene convogliato in FINDSTR che cerca una stringa contenente una sottostringa var preceduta da un numero indefinito di spazi e sostituita da qualsiasi altro testo. Una volta trovato, il file cercato viene sostituito con uno nuovo che contiene solo la porzione di testo sopra la stringa di ricerca.

@echo off
setlocal enabledelayedexpansion
pushd "%temp%\Test"
for %%G in ("*.txt") do (set "break="
    (for /f "tokens=*" %%H in (%%~G) do (
        if not defined break (
            echo %%H | findstr /r /b /c:"[ ]*var.*" >nul && set break=TRUE || echo %%H )
    )) >> %%~nG_mod.txt
    del %%~G & ren %%~nG_mod.txt %%G )
popd
exit /b

Nota, come l' break=TRUE impostazione break=TRUE consente di uscire dal ciclo FOR dal ciclo cercato, una volta trovata la prima occorrenza della stringa di ricerca.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow