Suche…


Suche nach grundlegenden Zeichenketten

Der Befehl FIND kann große Dateien zeilenweise prüfen, um eine bestimmte Zeichenfolge zu finden. Es werden keine Platzhalterzeichen in der Suchzeichenfolge unterstützt.

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

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

Der Befehl FINDSTR bietet mehr Reichweite und unterstützt die Suche nach regulären Ausdrücken (REGEX) mit Platzhalterzeichen in der Suchzeichenfolge.

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

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

Siehe FIND und FINDSTR Hilfe Quellen für weitere Informationen.

Suchergebnisse verwenden

Das folgende Skript zeigt eine erweiterte Split-File- Technik, bei der die FOR-Funktion eine Liste von Dateien in einem Verzeichnis durchläuft, und jeder Dateiinhalt wird an FINDSTR weitergeleitet, der nach einem String sucht, der die Zeichenfolge var enthält, der eine nicht definierte Anzahl von Leerzeichen vorangestellt und durch zusätzliche ersetzt wird Text. Sobald die gesuchte Datei gefunden wurde, wird sie durch eine neue ersetzt, die nur den Textteil über der Suchzeichenfolge enthält.

@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

Beachten Sie, dass die Einstellung break=TRUE das Verlassen der FOR-Schleife aus der durchsuchten Datei ermöglicht, sobald das erste Vorkommen der Suchzeichenfolge gefunden wurde.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow