batch-file
일괄 적으로 문자열 검색
수색…
기본 문자열 검색
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!
자세한 정보는 FIND 및 FINDSTR 도움말 소스를 참조하십시오.
검색 결과 사용
다음 스크립트는 고급 분할 파일 기술을 보여줍니다. 여기서 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