수색…


기본 문자열 검색

FIND 명령은 대용량 파일을 줄 단위로 스캔하여 특정 문자열을 찾습니다. 검색 문자열에서 와일드 카드를 지원하지 않습니다.

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

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

FINDSTR 명령은 더 많은 기능을 제공하며 검색 문자열에 와일드 카드를 사용하여 REGEX (정규 표현식) 검색을 지원합니다.

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

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

자세한 정보는 FINDFINDSTR 도움말 소스를 참조하십시오.

검색 결과 사용

다음 스크립트는 고급 분할 파일 기술을 보여줍니다. 여기서 FOR 함수는 디렉토리의 파일 목록을 통해 반복되며 각 파일 내용은 FINDSTR로 파이프됩니다.이 문자열은 정의되지 않은 수의 공백이 앞에오고 추가로 대체 된 하위 문자열 var 포함하는 문자열을 찾습니다. 본문. 일단 발견되면, 검색된 파일은 검색 문자열 위에 텍스트 부분만을 포함하는 새로운 파일로 대체됩니다.

@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

참고로, break=TRUE 설정하면 검색 문자열의 첫 번째 항목이 발견되면 검색된 파일에서 FOR 루프를 종료 할 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow