윈도우 일반

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

CApple 2012. 11. 29. 23:36

분할 파일들


위와 같은 분할 파일을 받았는데 마땅한 병합 프로그램이 없을 때가 있습니다. 파일 병합 프로그램이야 워낙에 많고, 대부분 무료 프로그램이기 때문에 간단하게 구해서 사용하면 되긴 합니다. [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 로 구성해놓고 하는 걸 좋아하죠. 그건 그냥 제 취향입니다. ^^;

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