Buscar..


Búsqueda de cadenas básicas

El comando FIND puede escanear archivos grandes línea por línea para encontrar una cadena determinada. No admite comodines en la cadena de búsqueda.

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

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

El comando FINDSTR tiene un mayor alcance de funciones y admite la búsqueda de expresiones regulares (REGEX) con caracteres comodín en la cadena de búsqueda.

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

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

Consulte las fuentes de ayuda de FIND y FINDSTR para obtener más información.

Usando los resultados de búsqueda

La siguiente secuencia de comandos muestra una técnica de archivos divididos más avanzada, donde la función FOR recorre una lista de archivos en un directorio, y cada contenido de archivo se canaliza a FINDSTR que busca una cadena que contiene la subcadena var precedida por un número indefinido de espacios y reemplazada por cualquier extra texto. Una vez encontrado, el archivo buscado se reemplaza por uno nuevo que contiene solo la parte de texto sobre la cadena de búsqueda.

@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

Tenga en cuenta que la configuración de break=TRUE permite salir del ciclo FOR del archivo buscado, una vez que se encuentra la primera aparición de la cadena de búsqueda.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow