2014-04-01 2 views
0

현재 하나의 .txt 파일에서만 읽을 수 있습니다. 여기 내 코드가있다.배치 파일 - 폴더에있는 .txt 파일을 여러 개 읽는 방법?

for /f "delims=" %%a in (C:\test\Scriptlogs\COB\log_DP_20140331_1509_CW52.txt) do SET e=%%a 

제 질문은 하나의 폴더에 많은 .txt 파일이 포함되어 있지만 위의 코드는 지정된 .txt 파일 만 읽는 것입니다. 모든 .txt 파일을 반복 할 수 있도록 변경해야하는 사항은 무엇입니까?

.txt 파일 이름의 예입니다.

log_DP_20140331_1324_CW52.txt 
log_DP_20345692_1234_CW51.txt 
log_DP_21234324_2134_CW50.txt 

FYI 폴더에는 3 개 이상의 .txt 파일이 있습니다. 지도, 답변 또는 비슷한 게시물을 공유 하시겠습니까?

의견을 보내 주셔서 감사합니다.

+0

나는 꽤 확신 당신 '(C : \ test \ Scriptlogs \ COB \ log_DP _ *. txt)'라고 말할 수 있으며 모두로드 할 것입니다. – Blorgbeard

+0

@Blorgbeard 안녕하세요, 저는이/f "delims ="%% a in (C : \ test \ Scriptlogs \ COB \ log_DP _ *. txt) SET E = %% a'를 시도했지만 짝수를 얻을 수 없습니다 하나의 txt 파일 = (. –

답변

1

파일 내용을 반복하는 방법이 있습니다. 필요한 것은 파일 목록을 반복하고 각 파일의 내용을 읽는 것입니다. 그래서 %%x이 세트의 각 파일에 대한 참조를 보유하고 %%~fx

for %%x in (C:\test\Scriptlogs\COB\log_DP_*.txt 
) do for /f "usebackq delims=" %%a in ("%%~fx") do ..... 

은 파일의 전체 경로입니다. 파일 이름에서 가능한 공간 문제를 방지하기 위해, 내가 그것을 "%%~fx" 때문에, 그것은 문자열하지만 파일이 아닌 그 for /f COMAND에 표시하기 위해 인용 한 usebackqfor 옵션 문자열에 포함 된

+0

안녕하세요 엠씨, 명확한 답변 주셔서 감사합니다!이 작동하고 있습니다. 그러나 나는 다른 문제를 만났을 때 나는 .... ("%% ~ fx ") do set e = %% a' 예를 들어 첫 번째 파일 변수 -'Error'와 두 번째 파일 변수'Success'. 항상' 성공'언제 내가'설정 한 e = %% a'. 왜 이런 일이 생길까요? IF 문을 수행 할 수 있도록 두 변수가 필요합니다. 도와주세요! –

+0

루프에서 파일을 사용하는 데 도움이 필요하면 다음과 같이 할 수 있습니다. 서로 다른 방법으로 접근하고 가장 쉬운 방법은 정확히 무엇을하고 싶은가에 달렸습니다. 자세한 내용을 포함하도록 질문을 수정하십시오. – foxidrive

+0

@ user2709555, 만약 당신이하는 일이 각각의 itera에'set var = value'이라면 값을 덮어 씁니다. 귀하의 의견을 볼 때, 나는 당신의 요구가 무엇인지 명확하게 알 수 없습니다. 파일 샘플을 가지고 다른 질문을 게시 할 수 있습니까? 요구 사항은 무엇입니까? 댓글은이 모든 것을 처리하기에는 너무 제한적입니다. –

0

forfiles 기능이 필요합니다. 가지고있는 코드를 forfiles 루프의 본문에 넣을 수 있습니다. ss64.com을 확인하십시오. 많은 스크립팅 언어를위한 훌륭한 리소스입니다.

+0

조언과 공유 주셔서 감사합니다 !! 많이 감사합니다! –

관련 문제