batch-file-es Windows
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capítulo 6: Buscar cadenas en lote
Examples
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.
Lea Buscar cadenas en lote en línea: https://riptutorial.com/es/batch-file/topic/5476/buscarcadenas-en-lote
https://riptutorial.com/es/home 16