반응형
Batch 파일 내 xcopy를 이용하여 간단하게 백업하는 스크립트입니다.
스케쥴링을 통해서 하면 원하는 날짜별로 주기적으로 백업을 받을 수 있으며,
배치파일 내 기간 설정을 통해 특정 날짜를 지난 백업파일을 삭제할 수 있습니다.
[Batch 파일]
@echo off
set source=C:\bak\13123123
set destination=C:\bak\BackupTest
set date=%date:~-10,4%-%date:~-5,2%-%date:~-2,2%
mkdir %destination%\%date%
xcopy /s /e /y %source% %destination%\%date%
REM 1년(365일) 이상 된 백업 폴더 삭제
forfiles /p %destination% /m * /d -365 /c "cmd /c if @isdir==TRUE rd /s /q @path"
1. Source 부분이 백업 받을 대상 경로입니다.
2. destination 부분이 어디에다 백업 받을지 위치를 설정하는 것 입니다.
(아래 mkdir 명령어를 통해 해당 경로에 폴더들이 없으면 생성을 진행합니다.)
3. 맨 아랫줄 부분이 오래된 백업파일을 삭제하는 부분이며 /d -365 로 되어있는 것이 해당 일수입니다.
365로 되어 있는 것은 365일 지난 폴더를 삭제하겠다라는 것입니다. 원하는 날짜로 변경하셔서 사용하시면 됩니다.
[그 외 부가 설명]
명령어 : xcopy /s /e /y %source% %destination%\%date%
- /s: 하위 디렉터리를 포함하여 복사하되, 비어 있지 않은 디렉터리만 복사합니다.
- /e: 비어 있는 디렉터리도 포함하여 모든 하위 디렉터리를 복사합니다.
- /y: 기존 파일을 덮어쓸 때 사용자에게 확인 메시지를 표시하지 않고 자동으로 덮어씁니다.
명령어 : forfiles /p %destination% /m * /d -365 /c "cmd /c if @isdir==TRUE rd /s /q @path"
- forfiles: 지정된 폴더에서 특정 조건에 맞는 파일이나 폴더를 찾습니다.
- /p: 검색할 경로를 지정합니다.
- /m: 파일 이름 패턴을 지정합니다(*는 모든 폴더를 의미).
- /d -365: 365일 이상 지난 폴더를 찾습니다.
- /c: 찾은 폴더에 대해 실행할 명령을 지정합니다. 이 경우, 오래된 폴더를 삭제합니다(rd /s /q).
반응형