Saturday, February 23, 2008
USB메모리, SD카드에 파일 자동 백업 배치파일; File XCOPY Auto Backup Batch
아이콘을 마우스로 클릭하기만 하면, 자동으로, USB메모리, SD카드, 또는 하드의 특정 폴더에 파일을 복사하여 백업하는 배치파일입니다.
그런데 SD카드 같은 플래시 메모리 카드에는 수명이 있습니다. 하드처럼 무한정 사용할 수는 없습니다. 그래서 수정 사항이 없어서 백업할 필요가 없는 파일은 복사해서는 안됩니다. 불필요하게 복사하면 메모리카드 수명만 짧아집니다. 일반적인 COPY 명령에는 갱신 사항이 있는 파일만 골라서 복사하는 기능이 없기에, XCOPY 명령을 사용해야 합니다.
다음 예제 소스와 같이 배치파일을 작성하면 됩니다. 다음은
D:\Y 폴더의 test.zip 이라는 파일과, D:\X 폴더의 test2.zip 이라는 두 개의 파일을
e:드라이브의 BACKUP 폴더에 복사하여 백업하는 배치파일입니다. USB드라이브나 SD카드의 이동식 디스크가 E:드라이브라고 간주했습니다. 자신에게 맞게 드라이브명, 파일명, 폴더명을 수정해 주어야 합니다. (다만, 파일이 저장될 폴더인 BACKUP 이라는 폴더가 없다면 자동으로 생성됩니다.)
파일명: SD_BackUp.bat
pause 라는 명령은, 파일 백업이 다 끝났을 때, 도스창이 즉시 닫히지 않도록 일시 중지시키는 명령입니다. 이 명령이 있어야만, SD_BackUp.bat 파일을 마우스로 클릭하여 사용할 수 있습니다.
파일명이나 폴더명에 공백(스페이스)이 있다면, 큰따옴표(")로 둘러싸 주면 됩니다. 참고: ▶▶ XCOPY 공백있는폴더명 파일명 복사 방법; Filename Space
그런데 SD카드 같은 플래시 메모리 카드에는 수명이 있습니다. 하드처럼 무한정 사용할 수는 없습니다. 그래서 수정 사항이 없어서 백업할 필요가 없는 파일은 복사해서는 안됩니다. 불필요하게 복사하면 메모리카드 수명만 짧아집니다. 일반적인 COPY 명령에는 갱신 사항이 있는 파일만 골라서 복사하는 기능이 없기에, XCOPY 명령을 사용해야 합니다.
다음 예제 소스와 같이 배치파일을 작성하면 됩니다. 다음은
D:\Y 폴더의 test.zip 이라는 파일과, D:\X 폴더의 test2.zip 이라는 두 개의 파일을
e:드라이브의 BACKUP 폴더에 복사하여 백업하는 배치파일입니다. USB드라이브나 SD카드의 이동식 디스크가 E:드라이브라고 간주했습니다. 자신에게 맞게 드라이브명, 파일명, 폴더명을 수정해 주어야 합니다. (다만, 파일이 저장될 폴더인 BACKUP 이라는 폴더가 없다면 자동으로 생성됩니다.)
파일 백업 배치파일
파일명: SD_BackUp.bat
@echo off
xcopy D:\Y\test.zip e:\BACKUP\ /D /H /K /Y
xcopy D:\X\test2.zip e:\BACKUP\ /D /H /K /Y
pause
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: XCOPY 옵션 설명
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: /D 옵션은 파일의 날짜/시간을 비교하여, 원본이 갱신된 경우만 복사
:: /H 옵션은 히든파일/시스템파일이라도 복사하기
:: /K 옵션은 파일의 속성까지 복사
:: /Y 옵션은 '덮어쓸까요?'라고 묻는 것을 생략하는 것
xcopy D:\Y\test.zip e:\BACKUP\ /D /H /K /Y
xcopy D:\X\test2.zip e:\BACKUP\ /D /H /K /Y
pause
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: XCOPY 옵션 설명
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: /D 옵션은 파일의 날짜/시간을 비교하여, 원본이 갱신된 경우만 복사
:: /H 옵션은 히든파일/시스템파일이라도 복사하기
:: /K 옵션은 파일의 속성까지 복사
:: /Y 옵션은 '덮어쓸까요?'라고 묻는 것을 생략하는 것
pause 라는 명령은, 파일 백업이 다 끝났을 때, 도스창이 즉시 닫히지 않도록 일시 중지시키는 명령입니다. 이 명령이 있어야만, SD_BackUp.bat 파일을 마우스로 클릭하여 사용할 수 있습니다.
파일명이나 폴더명에 공백(스페이스)이 있다면, 큰따옴표(")로 둘러싸 주면 됩니다. 참고: ▶▶ XCOPY 공백있는폴더명 파일명 복사 방법; Filename Space
tag: batch
배치파일 | DOS CMD BATCH .BAT
tag: windows
윈도우 | Windows 7 | Windows XP | Windows 2000
수명이야 있지만, 1000번 정도라는 것은 너무 적은 수치가 아닌가 싶습니다.
대체로 최소 1만번 이상 정도는 됩니다. SSD에 쓰이는 것들은 10만번 이상, 거기에 회피 알고리즘이 있어서 카운트 숫자를 최소화 시킵니다.
좋은 지적 감사합니다. 제가 숫자를 헷갈렸습니다. 자료를 다시 찾아보니 말씀하신 대로 최소 1만번이었습니다.
*∩_∩*
음?...pause와 마우스로 클릭해 실행하는게 무슨 관계인지 잘 이해가 안가는군요?
설명좀...
pause(실행 일시 중지하고 대기하는 명령)는 내부에서 사용되는 명령이므로 신경 쓰실 필요없습니다.
위의 파란 박스의 내용을 메모장에서 SD_BackUp.bat 이라는 파일로 만들어서 바탕화면에 저장하면, SD_BackUp.bat 이라는 아이콘이 보이겠지요. 그 SD_BackUp.bat 이라는 아이콘을 마우스로 클릭하면 백업이 실행된다는 뜻입니다.
만약 pause라는 명령을 지운다면, 도스창이 나왔다가 0.1초만에 금방 사라져 버리기에 마우스로 클릭하여 실행하기 곤란합니다. 백업이 제대로 되었는지 확인이 힘들게 됩니다.
물론 "도스창"에서 SD_BackUp.bat 이라고 키보드로 직접 타이핑하여 실행할 때에는 pause가 없어도 괜찮습니다.
<< Home