여러 파일을 연결하는 명령 줄 또는 배치 cmd


99

한 디렉토리에 50 개의 텍스트 파일이 있습니다.

해당 파일을 단일 파일로 연결하는 Windows 명령 줄 방법이 있습니까?

내가 사용하고 Windows Vista를 .

모든 파일의 이름을 입력하고 싶지 않습니다.


어떤 DOS 버전을 사용하고 있습니까? :) c'mon, 우리에게 더 많은 정보를 제공하고, 어떤 파일 형식을 ... 당신은 분명히 그 파일들을 병합하는 방법을 찾고 있습니다.

게시물 수정
Mirage

2
Windows NT 기반 OS (NT, 2000 및 XP 이후의 모든 것)의 DOS는 실제로 DOS가 아니며 "cmd.exe"라는 명령 셸입니다. 이를 반영하기 위해 DOS 태그를 제거했습니다.
quack quixote

미안, 난 정말 몰랐어요. 나는 DOS로 생각하고 있었다
Mirage

1
고맙게도 DOS의 마지막 흔적은 Windows ME로 죽었습니다. :)하지만 걱정 - 대부분의 사람들이 여전히 윈도우 명령 줄 "DOS"를 호출, 그래서 그렇지 않은 잘못 다만, 부정확 . 실제 DOS가 여전히 사용되기 때문에 DOS 태그를 정리하여 실제 DOS 질문이됩니다.
quack quixote

답변:


128

모든 파일의 이름을 입력하고 싶지 않습니다.

피하기 쉽다. 이 폴더에서 명령 프롬프트를 열고 다음 명령을 입력하십시오.

copy /b *.txt newfile.txt

를 누릅니다 Enter.

이제이 폴더에 날짜별로 오름차순으로 정렬 된 모든 텍스트 파일이 newfile.txt라는 단일 파일로 병합됩니다.

궁극적 인 목표는 각 텍스트 파일의 내용을 Excel 시트의 별도 열에 저장하는 것입니다.

"궁극적 인 목표"를 달성하는 데 도움이되는 자습서는 다음과 같습니다.

하나의 워크 시트에있는 폴더의 모든 CSV 또는 TXT 파일 병합


모든 파일 뒤에 줄 바꾸기 문자를 삽입 할 수 있습니까
Mirage

이 방법으로는 그렇지 않습니다.
quack quixote

다른 옵션은 무엇입니까? 나의 궁극적 인 목표는 각 텍스트 파일의 내용을 엑셀 시트의 별도 열에 저장하는 것입니다. ANy 아이디어
Mirage

@Mirage-귀하의 의견에 따라 답변을 업데이트했습니다.

그러나 문제는 각 텍스트 파일에 끝 문자를 추가하는 방법입니다. 현재 일부 파일 텍스트는 병합 된 파일에서 동일한 paragrah에 있으므로 한 열에 넣습니다. 또는 모든 파일에 먼저 끝 문자를 추가 한 다음 병합 작업을 수행 할 수있는 경우
Mirage

38

연결된 각 파일의 끝에 새 줄을 추가하려면 다음과 같이 type대신을 사용하십시오 copy.

type *.txt > newfile.txt

5
경고 : * .txt> newfile.txt 유형 을 사용 하면 텍스트가 복제됩니다.
Malganis

2
제거 .txt에서 newfile와 빵! 거기 있어요
fa wildchild

이것은 로그 파일을 연결하거나 길을 파싱 할 다른 것들에 대한 훌륭한 답변입니다. 특히 type x.log.* > merged.log배치 파일없이 수행 할 수 있습니다 . 새로운 라인은 다루기가 매우 쉽습니다.
Daniel Chapman

1
와우, typeDOS 3.3부터 먼 길을 왔습니다. 파일 마스크를 사용할 수 있다는 것을 몰랐습니다. 언제 그런 일이 있었습니까?
일요일

32

텍스트 파일 추가에 대해 이야기한다고 가정하면 copy명령을 사용 하여 텍스트 파일 을 추가 할 수 있습니다.

copy file1+file2+file3 targetfile

파일이 많은 경우 한 번에 하나의 파일을 추가하여 반복 할 수 있습니다.

이진 파일의 경우 ' /b'옵션을 추가하십시오 .

copy /b file1+file2+file3 targetfile

이는 작업중인 바이너리 파일을 연속해서 추가 할 수 있다는 것을 알고 있다고 가정합니다. 그렇지 않은 경우 쓸모없는 데이터가 대량으로 제공됩니다.


5
파일을 특정 순서로 연결해야하는 경우 매우 유용합니다.
kapex


8

명령 프롬프트에서 다음 명령을 실행하십시오.

for %f in (*.txt) do type "%f" >> output.txt

1
예상대로 작동하지 않습니다. 모든 텍스트가 다음과 같이 복제됩니다.output.txt
DavidPostill

3
힌트 * .txt는 output.txt와 일치
DavidPostill

@DavidPostill, 귀하의 우려에 따라 답변을 편집했습니다.
Saran

3

다음 .bat 파일은 XIT.for를 제외한 모든 * .for 파일을 MASTER.for라는 빈 파일에 추가합니다.

type NUL > MASTER.for
FOR %%G IN (*.for) DO IF NOT "%%G" == "XIT.for" copy /A MASTER.for+"%%G" && echo. >> MASTER.for

:)


2
위의 약간의 왜곡 : 파일이 알파벳순 으로 연결되도록 하려면 다음을 사용해야합니다 : FOR / F %% G IN ( 'dir / b / o * .for') "%% G" == "XIT.for"사본 / A MASTER.for + "%% G"&& echo. >> MASTER.for
Guido Domenici

나는 이것을 좋아한다. 오늘 필요한 또 다른 조정은 파일 이름 헤더를 파일에 인쇄하여 입력 파일을 분리하는 것입니다. for %f in (*.txt) do ((echo. & echo == %f == & echo. & type %f ) >> *.txt.dat )
커티스 가격

bash 쉘을 사용하는 것이 더 의미가 있다는 것을 알고 있습니다!
커티스 가격
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.