여러 파일에서 문자열을 찾아서 새 파일을 만들지 않고 교체


3

여러 개의 ".c"및 ".h"파일이 들어있는 폴더의 파일에서 "date"와 같은 문자열을 찾고 배치 파일을 사용하여 "date 24-April-2018"로 바꿉니다. 어떻게해야합니까? 아래 코드를 참조하십시오. 하나의 파일 Input.txt에 대해 동일하지 않고 폴더 확장자가있는 여러 파일에 대해하고 싶습니다.

@echo off 
setlocal enableextensions disabledelayedexpansion

set "search=@date"
set "replace=@date 24-apr-2018"

set "textFile=Input.txt"

for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    >>"%textFile%" echo(!line:%search%=%replace%!
    endlocal
)

1
당신이 정의하는 경우 textFileset "textFile=%1", 당신은 (예를 들어 이름이 배치 파일을 호출 할 수 있습니다 SetDate.cmd전달 된 매개 변수에 파일을 업데이트). 그런 다음 배치 파일 자체에 if를 for %i in (DirPath\FileMask) do call SetDate.cmd %i두 배로 사용 하여을 사용할 수 있습니다 %.
AFH

나는 당신을 얻지 못했습니다. 배치 파일 솔루션 내에서 나에게 줄 수 있습니까?
Meera

최근에 GrepWin 을 사용하여 여러 텍스트 파일과 위치를 찾아서 바꾸기 시작했습니다 . 나는 그것에 깊은 인상을 받았습니다.
Andi Mohr

@ Meera-답변이 필요한 세부 사항으로 들어 가지 않고 설명 할 말이 무엇인지 모르겠습니다. 배치 파일이 SetDate.cmd이면 세 번째 set명령 이로되도록 편집 set "textFile=%1"한 다음 for %f in (DirPath\FileMask) do call SetDate.cmd %f명령 줄 또는 for %%f in (DirPath\FileMask) do call SetDate.cmd %%f다른 배치 파일 내 에서 호출 하십시오. 나는 그것이 무엇 DirPathFileMask의미 하고 의미하기를 바랍니다.
AFH
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.