2013-07-05 3 views
0

나는 수천 개의 텍스트 파일로 구성된 디렉토리가 있습니다. 각 텍스트 파일에는 한 줄이 있습니다. 병합하려면 Windows의 명령 프롬프트에서 copy * aggregate.txt을 사용했으나 줄 간격이없이 복사되었습니다.여러 개의 텍스트 파일을 하나로 병합합니다.

그래서 어떻게 파일이 결합되어 선이 분리됩니까? 파일을 복사 할 때마다 줄 바꿈 문자를 삽입 하시겠습니까?

명령 프롬프트 또는 Windows 배치 프로그램을 사용하는 방법이 있거나 디렉토리마다 모든 파일을 읽는 방법을 알 수 있다면 C++ 프로그램을 작성하여 수행 할 수 있습니다.

답변

1

이 파일의 수천 변경 d:\folder을 참여로 시작하고 그 D가 아닌 다른 곳에 배치 파일을 배치 할 시간이 걸릴 수 있습니다 : 폴더를

@echo off  
pushd "d:\folder" 
for /f "delims=" %%a in ('dir /b /a-d ') do (
type "%%a" >>aggregate.txt 
echo.>>aggregate.txt 
) 
popd 

을 \ 또는이 바로 시작해야하는 :

@echo off 
pushd "d:\folder" 
dir /b /a-d >"c:\file.tmp" 
for /f "delims=" %%a in (c:\file.tmp) do (
type "%%a" >>aggregate.txt 
echo.>>aggregate.txt 
) 
del "c:\file.tmp" 
popd 
+0

두 번째 것은 첫 번째 작업이 수행되는 동안 작동하지 않았습니다. 지금 아니오. 집계의 행 수는 파일 수보다 3입니다. –

+0

aggregate.txt 파일을 실행하기 전에 삭제하십시오. 두 번째 것은 c : \ – foxidrive

+0

에 대한 쓰기 권한이 필요합니다. 예를 실행하기 전에 집계가 없습니다. 여분의 3 라인은 어때? –

0
@ECHO OFF 
SETLOCAL 
(
FOR %%i IN (*) DO if /i not "%%i"=="aggregate.txt" TYPE "%%i"&ECHO(
)>aggregate.txt 

개인적으로, 나는 ...이를 사용하십시오

+0

그게 효과가 있지만 파일 수보다 더 많은 줄이 있습니다. 나는 이유를 알 수 없다. –

+0

setlocal을 제거하면 더 쉽게 단순화 할 수 있습니다. :) 그러나 그것도 그렇지 않은 것처럼 aggregate.txt를 파싱 할 것인가? – foxidrive

+0

예 - 아마도 "여분의 줄"의 출처가 집계에서'aggregate.txt'를 포함하고 있습니다. 나는 테스트를 실행하기 전에 그것을 삭제했다. 수정 된 일괄 처리에서 이제 보고서 파일을 제외해야합니다. – Magoo

관련 문제