2012-12-17 4 views
2

다른 파일 내의 지정된 줄/문자열을 읽고 바꾸는 배치 파일을 만들려고합니다.배치 : 파일에서 문자열 읽기, 다른 파일에 쓰기

예 :

나는 파일이 포함 \\company.local\netlogon\data.txt에 위치한 한 다음

JohnDoe=157 JoeSmith=104 JoeBloggs=514 

이 내가 검색 할 수있는 스크립트에 로그 정도로 기본적으로 동등한 후 그 문자열 서명을 읽고 싶어 %username%이 포함 된 행의 경우 등호 뒤에있는 숫자를 %number%과 같은 변수로 읽습니다.

따라서 JohnDoe이 로그온하려면 그의 이름을 검색하고 157을 읽어야합니다.

다른 파일에서 문자열을 검색하고 특정 문자열에 쓸 수 있기를 원하면 Extension=을 검색하고 그 뒤에 157을 작성하십시오.

Extension=%number%과 비슷한 것으로 Extension=157이라는 파일을 읽습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+0

, 나는 SO 표준 : –

+1

@BaliC에 당신을 위해 그것을 편집 한 : 그것은 당신을 위해 편집에 돌진합니다. :) 당신이 그것을 고치기 시작했을 때 OP는 여전히 게시물을 닦는 과정에 있어야합니다. 때로는 인내심을 가져야하고 청소를 시작하기 전에 조금만 기다려야합니다. :) –

+0

@AndriyM 그래, 내가 게시 한 것처럼 게시물을 가로 챈 것 같아서 편집을 시작했다. :) –

답변

1

파일 형식은 확실하지 않지만 각 항목을 줄 바꾸기로 사용하면 효과가 있습니다. 당신이 그 (것)들을 확인하십시오 사소한 편집을 할 수있는 편집이있는 경우

set extlist=P:\ath\to\extensionlist.txt 
set userdata=P:\ath\to\directory\%username%.txt 

for /f "tokens=1,2 delims==" %%a in (%extlist%) do if /I %%a.==%username%. set ext=%%b 

ren %userdata% %username%.txt.bak 
for /f "tokens=1,2 delims==" %%a in (%userdata%.bak) do if /I %%a.==Extension. (echo Extension^=^%ext%>>%userdata%) else (echo %%a^=^%%b>>%userdata%) 
del /Q %userdata%.bak