문자열을 찾아 메모장 파일에서 가져온 문자열로 바꾸는 배치 파일을 만들려고합니다.
예를 들면 :
XYZ.txt에 다음 내용이 있습니다.
<XML을 3.0>
집합 bjuih
fjgfgfr
GA JHJA KSKASA
세트의 OID 값 = ' 1.2.3.456.7 '
gshdasdsad
단부
굵게 표시된 번호를 이름이 ABC.txt 인 파일에서 가져온 값으로 바꾸고 싶습니다.
아래 코드를 작성할 수있었습니다. 그러나 예상대로 작동하지 않습니다.
@echo off
SET InFile=C:\Test\Apple\XYZ.txt
FOR /F "tokens=*" %%A IN ('FINDSTR "1.2.3.456.7 "%InFile%"') DO CALL :FindString "%%A"
pause
goto :eof
:FindString
SET String=%~1
SET String=%String:1.2.3.456.7=abc%
echo.%String%>C:\Test\Apple\XYZ.txt
이 문제를 해결하려면 최대한 빨리 도움이 필요합니다.
@ECHO OFF
SETLOCAL
SET "sourcedir=."
(
FOR /f "delims=" %%a IN ('type "%sourcedir%\abc.txt"') DO (
SET "replacement=%%a"
FOR /f "delims=" %%b IN ('type "%sourcedir%\xyz.txt"') DO (
SET "line=%%b"
CALL :subs
IF DEFINED line ECHO %%b
)
)
)>newfile.txt
GOTO :EOF
:subs
SET "newline=%line:SET Oid value=%"
IF "%newline%"=="%line%" GOTO :EOF
SET "line="
ECHO Set Oid value = '%replacement%'
GOTO :eof
이 배치는 단순히 파일을 newfile.txt
. 나는 .
내 목표로 사용 했다-당신은 당신의 디렉토리 이름을 대체해야 할 것입니다.
참고가 현재 위치에서 파일을 업데이트 할 수 있음 - 새 파일을 생성해야합니다 ( newfile.txt
이 배치에서 and then
이동 it over the original version (
이동 / y`는 요청하지 않고 대체합니다).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다