파일이나 폴더를 복사하거나 이동하는 가장 간단한 방법 중 하나는 끌어서 놓기 기능을 이용하는 것입니다. 만약 여러 폴더에 동일한 파일을 복사해야 할 경우에는, Ctrl 키를 누른 채로 파일을 복사하려는 각 폴더에 끌어다 놓는 방식을 사용할 수 있습니다. 하지만 이렇게 하면 파일을 복사해야 하는 폴더마다 개별적으로 드롭해야 하므로 시간이 상당히 소요될 수 있습니다. 대량의 파일을 여러 폴더에 복사해야 할 때, 배치 파일 스크립트를 활용하면 이러한 작업을 한 번에 처리할 수 있어 매우 효율적입니다.
만약 여러 파일을 하나의 특정 폴더로 복사하고 싶다면, 마우스 오른쪽 버튼 클릭 메뉴에서 제공하는 ‘보내기’ 기능을 이용하는 것이 좋습니다.
여러 폴더에 파일 복사하기
이 배치 스크립트에는 중요한 제약 사항이 하나 있습니다. 복사하려는 폴더들이 모두 같은 상위 폴더 안에 있어야 한다는 것입니다. 만약 폴더들이 서로 다른 위치에 있다면, 스크립트는 제대로 작동하지 않습니다.
먼저 메모장을 열고 아래 코드를 붙여넣으세요. 스크립트를 사용하기 전에 반드시 편집해야 합니다.
@echo off for /D %%a in ("path-to-folder*.*") do xcopy /y /d path-to-filefile.FileExt "%%a"
가장 먼저 수정해야 할 부분은 (“path-to-folder*.*”) 부분입니다. 이 부분을 다른 폴더들을 담고 있는 폴더의 실제 경로로 변경해야 합니다. 예를 들어, ‘Games’라는 폴더 안에 ‘1’, ‘2’, ‘3’이라는 세 개의 하위 폴더가 있다고 가정해 봅시다. 이 경우, “Games” 폴더의 전체 경로를 입력해야 합니다. 이때, 끝에 붙은 *.* 부분과 괄호, 따옴표는 반드시 그대로 유지해야 합니다.
다음으로 수정해야 할 부분은 path-to-filefile.FileExt 입니다. 이 부분을 다른 폴더에 복사하고 싶은 파일의 실제 경로로 변경해야 합니다. 이 때 파일 이름과 확장자를 정확하게 포함시켜야 합니다. 만약 경로 또는 파일 이름에 공백이 포함되어 있다면, 전체 경로를 큰 따옴표(“)로 감싸야 합니다.
수정된 메모장 파일을 .BAT 확장자로 저장한 후 실행하면, 지정한 파일이 모든 하위 폴더에 복사됩니다.
예시:
아래는 C:\Users\사용자이름\Desktop\Test 에 위치한 MyFile.txt 라는 파일을 C:\Users\사용자이름\Desktop\Newfolder 아래의 모든 하위 폴더에 복사하도록 스크립트를 수정한 예시입니다.
@echo off for /D %%a in ("C:\Users\사용자이름\Desktop\Newfolder\*.*") do xcopy /y /d C:\Users\사용자이름\Desktop\Test\MyFile.txt "%%a"
배치 스크립트를 사용하는 대신, 이와 동일한 코드를 약간 수정하여 명령 프롬프트에서 직접 실행할 수도 있습니다. 명령 프롬프트에서 실행하기 위해 코드를 다음과 같이 수정해야 합니다.
for /D %a in ("c:\path-to-folder*.*") do xcopy /y /d c:\testfile.FileExt "%a"
여기서 변경된 부분은 @echo off 명령어가 제거되었고, %% 기호가 % 기호 하나로 변경되었다는 점입니다. 명령 실행 전에는 경로를 자신의 환경에 맞게 수정해야 합니다. 하지만 명령 프롬프트를 사용하면 작업 진행 상황을 실시간으로 확인할 수 있다는 장점이 있습니다.