본문 바로가기

윈도우 일반

파일 병합(Join) 프로그램이 없을 때 간단하게 Copy 명령만으로 분할된 파일들을 하나로 합치는 방법

분할 파일들


위와 같은 분할 파일을 받았는데 마땅한 병합 프로그램이 없을 때가 있습니다. 파일 병합 프로그램이야 워낙에 많고, 대부분 무료 프로그램이기 때문에 간단하게 구해서 사용하면 되긴 합니다. [HJSplit 3.0 - 간단한 파일 분할 병합 프로그램]

하지만 이러한 프로그램들 없이도 간단하게 윈도우의 Copy 명령만으로 분할 파일들을 하나로 합칠 수 있습니다. 예를 들어 위와 같은 파일들을 Copy 명령을 통해 하나로 합친다면 아래와 같이 작업하면 되는 것이죠.

copy /B "T:\Work\Illust.zip.*" "T:\Work\Illust.zip"



분할 파일들은 숫자로 구성된 확장자 부분을 제외하곤 나머지 이름은 모두 같으니 따로 하나씩 + 하실 필요없이 위처럼 * 와일드 카드로 처리하시면 됩니다. 참고로 주의하실 점이라면 반드시 바이너리 파일임을 알려주는 /B 를 붙여주셔야 합니다. 그것 말고는 따로 주의하실 것은 없습니다. 이상입니다. ^^


* 글이 허전한 걸 도저히 참을 수 없어 만들어 본 분할 파일 병합용 Join.cmd 배치 파일

C:\Windows 나 C:\Windows\System32 폴더에 넣고 사용하시면 편하실 껍니다. 사용법은 아래의 이미지를 참고하세요.

@echo off
setlocal


if /i "%1"=="/?" goto Usage
if /i "%~1"=="" goto Usage
set SRC=%~1


if /i "%~2"=="" (
    set DST=%SRC:~0,-4%
) else (
    set DST=%~2
)


if /i not "%3"=="" goto Usage



if not exist "%SRC%" goto Fail1
if exist "%SRC:~0,-4%" goto Fail4
if exist "%SRC%.001" goto Fail3
if exist "%DST%" goto Fail2



copy /B "%SRC:~0,-4%.*" "%DST%"

echo.
echo.
echo 분할 파일들을 %DST% 로 성공적으로 합쳤습니다.
echo.
goto :EOF




:Fail1
echo.
echo %SRC% 분할 시작 파일이 존재하지 않습니다.
goto :EOF




:Fail2
echo.
echo %DST% 파일이 이미 존재합니다. 확인해보세요.
goto :EOF




:Fail3
echo.
echo %SRC% 파일은 분할 파일이 아닙니다. 확인해보세요.
goto :EOF




:Fail4
echo.
echo 분할 파일 경로에 이미 원본 파일이 존재합니다. 확인해보세요.
goto :EOF




:Usage
echo.
echo 배치 파일 사용법
echo.
echo 1^> join "D:\Test\Split.zip.001"
echo 2^> join "D:\Test\Split.zip.001" "E:\Join.zip"
goto :EOF




참고로 ADK 에서 제공되는 copype.cmd 배치 파일이 이런 식으로 만들어져 있죠. 가물거려서 참고하다 보니 스타일도 그쪽을 따라 갔네요. ^^;; 배치 파일에 대해서 첨언하자면 :EOF 는 End of File 이라는 숨겨진 레이블로 배치 파일의 끝을 의미합니다. 배치 파일을 종료할 때 사용할 수 있습니다. 저는 이것보다는 그냥 :EXIT 로 구성해놓고 하는 걸 좋아하죠. 그건 그냥 제 취향입니다. ^^;

이 배치 파일은 생각도 안 했는데 글이 너무 짧아서 급하게 짜봤습니다. 또 여자 사진들로 채울 순 없잖아요. 이것도 병인가봐요. ㅜ_ㅜ 아무튼 잘 사용하세요. ^^