batch-file
Zoekreeksen in batch
Zoeken…
Basic strings zoeken
Met de opdracht FIND kunt u grote bestanden regel voor regel scannen om een bepaalde tekenreeks te vinden. Het ondersteunt geen jokertekens in de zoekreeks.
find /i "Completed" "%userprofile%\Downloads\*.log" >> %targetdir%\tested.log
TYPE scan2.txt | FIND "Failed" /c && echo Scan failed || echo Scan Succeeded
FINDSTR-opdracht biedt meer functiebereik en ondersteunt zoeken naar reguliere expressies (REGEX) met jokertekens in de zoekreeks.
FINDSTR /L /C:"Completed" Results.txt
echo %%G | findstr /r /b /c:"[ ]*staff.*" >nul && echo Found!
Zie helpbronnen van FIND en FINDSTR voor meer informatie.
Zoekresultaten gebruiken
Het volgende script toont een geavanceerdere gesplitste bestandstechniek , waarbij de functie FOR door een lijst met bestanden in een map loopt en elke bestandsinhoud wordt doorgestuurd naar FINDSTR die zoekt naar een tekenreeks met substring var
voorafgegaan door een ongedefinieerd aantal spaties en vervangen door extra tekst. Eenmaal gevonden, wordt het gezochte bestand vervangen door een nieuw bestand dat alleen het tekstgedeelte boven de zoekreeks bevat.
@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
Merk op hoe het instellen van break=TRUE
mogelijk maakt om de FOR-lus uit het gezochte bestand te verlaten, zodra het eerste exemplaar van de zoekreeks is gevonden.