7-zip 으로 폴더 압축후 백업디렉토리로 옮긴후 지정일 이후 파일 삭제하기
2015.02.27 03:21
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
시나리오 : C:|data 디렉토리를 압축하여 d:\backup 디렉토리에 보관후 7일 이상 지난 파일 삭제하기
단, c:\data\log 와 c:\data\temp 디렉토리는 백업에서 제외함.
전제조건 : 7-zip 설치
스크립트 작성
rem @echo off
rem ######### TYPE BACKUP SOURCE AND TARGET DIR ###############
SET 7ZIP="C:\Program Files\7-Zip\7z.exe"
SET SOURCEDIR=c:\data
SET TARGETDIR=D:\backup
SET TARGET_FILENAME=data
SET EXCLUDE_DIR="-x!%SOURCEDIR%\log -x!%SOURCEDIR%\temp"
SET RETENTION_DAY=7
rem #################################################################
rem ###### SET BACKUP FILE NAME
FOR /F "tokens=2-4 delims=/ " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k
FOR /F "tokens=1-3 delims=: " %%i IN ('time /t') DO SET TIME=%%i-%%j-%%k
SET BAK_TIME=%DATE%-%TIME%
SET BAK_FILEPATH=%TARGETDIR%\%TARGET_FILENAME%_%BAK_TIME%.zip
rem ###### COMPRESS FOLDER
%7ZIP% a -y %BAK_FILEPATH% %SOURCEDIR% %EXCLUDE_DIR%
rem ###### DELETE OLD FILES
forfiles /p %BAK_FILEPATH% /M *.zip /D -%RETENTION_DAY% /C "cmd /c del /q @file"
위 스크립트를 예약된작업에 등록하여 사용한다.
---------- 관련명령어 사용법 ----------------
forfiles 사용법
FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy-MM-dd | dd}]
설명:
파일(또는 파일 집합)을 선택하고 파일에 명령을
실행합니다. 일괄 작업에 유용합니다.
매개 변수 목록:
/P pathname 검색을 시작할 경로를 지정합니다.
현재 작업 디렉터리(.)가 기본
폴더입니다.
/M searchmask 검색 마스크에 따라 파일을 검색합니다.
'*'이 기본 검색 마스크입니다.
/S 하위 폴더를 포함하도록
지정합니다. 예, "DIR /S"
/C command 각 파일에 실행할 명령을 지정합니다.
명령 문자열을 큰따옴표로 묶어야
합니다.
"cmd /c echo @file"이 기본 명령입니다.
명령 문자열에 다음 변수를 사용할 수
있습니다.
@file - 파일 이름을 반환합니다.
@fname - 확장명 없이 파일 이름을
반환합니다.
@ext - 파일의 확장명만
반환합니다.
@path - 파일의 전체 경로를 반환합니다.
@relpath - 파일의 상대 경로를
반환합니다.
@isdir - 파일 형식이 디렉터리인 경우 "TRUE"
반환하고 파일인 경우 "FALSE"를 반환
@fsize - 파일의 크기(바이트)를
반환합니다.
@fdate - 파일을 마지막으로 수정한 날짜를
반환합니다.
@ftime - 파일을 마지막으로 수정한 시간을
반환합니다.
명령줄에 특수 문자를 포함하려면
0xHH 형식의 16진수 코드(예, 탭은 0x09)를
사용하십시오. 내부 CMD.exe 명령
앞에는 "cmd /c"를 사용해야
합니다.
/D date 지정한 날짜와 마지막 수정한 날짜가 늦거나
같은(+) 또는 빠르거나 같은(-) 파일을
찾습니다.
날짜 형식은 "yyyy-MM-dd"입니다.
또한 마지막 수정한 날짜가 현재 날짜에
"dd"일을 더한 날짜보다 늦거나 같은(+)
또는 현재 날짜에서 "dd"일을 뺀 날짜보다
작거나 같은(-) 파일을 찾습니다.
유효한 "dd" 범위는 0에서 32768까지입니다.
부호를 지정하지 않으면 "+"가 기본값입니다.
/? 이 도움말 메시지를 표시합니다.
예:
FORFILES /?
FORFILES
FORFILES /P C:\WINDOWS /S /M DNS*.*
FORFILES /S /M *.txt /C "cmd /c type @file | more"
FORFILES /P C:\ /S /M *.bat
FORFILES /D -30 /M *.exe
/C "cmd /c echo @path 0x09 was changed 30 days ago"
FORFILES /D 2001-01-01
/C "cmd /c echo @fname is new since Jan 1st 2001"
FORFILES /D +2015-2-26 /C "cmd /c echo @fname is new today"
FORFILES /M *.exe /D +1
FORFILES /S /M *.doc /C "cmd /c echo @fsize"
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
7-zip 명령어라인 사용법
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
[<@listfiles...>]
<Commands>
a: Add files to archive
b: Benchmark
d: Delete files from archive
e: Extract files from archive (without using directory names)
l: List contents of archive
t: Test integrity of archive
u: Update files to archive
x: eXtract files with full paths
<Switches>
-ai[r[-|0]]{@listfile|!wildcard}: Include archives
-ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
-bd: Disable percentage indicator
-i[r[-|0]]{@listfile|!wildcard}: Include filenames
-m{Parameters}: set compression Method
-o{Directory}: set Output directory
-p{Password}: set Password
-r[-|0]: Recurse subdirectories
-scs{UTF-8 | WIN | DOS}: set charset for list files
-sfx[{name}]: Create SFX archive
-si[{name}]: read data from stdin
-slt: show technical information for l (List) command
-so: write data to stdout
-ssc[-]: set sensitive case mode
-ssw: compress shared files
-t{Type}: Set type of archive
-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
-v{Size}[b|k|m|g]: Create volumes
-w[{path}]: assign Work directory. Empty path means a temporary directory
-x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
-y: assume Yes on all queries
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [공지] 게시자료 열람자유. 불펌금지입니다. | 조인상 | 2010.12.07 | 20700 |
102 | Win2003 에서 NetBEUI을 설치 | 조인상 | 2010.05.09 | 7611 |
101 | 4가지 시계 화면보호기와 낙타 화면보호기 모음"Free Screensavers" v1.3 | 조인상 | 2010.05.11 | 6413 |
100 | 언라커 unlocker | 조인상 | 2010.05.11 | 7140 |
99 | 테라카피 | 조인상 | 2010.05.11 | 7039 |
98 | 보안경고용 월페이퍼 | 조인상 | 2010.05.11 | 8666 |
97 | Windows 2000 administrator 유저 암호파일 | 조인상 | 2010.05.12 | 6826 |
96 | Win 2K에서 여러 디스크를 만드는 방법은 ? | 조인상 | 2010.05.12 | 6031 |
95 | boot.ini file 안의 긴 이름은 무엇을 의미하는 것인가? | 조인상 | 2010.05.12 | 6772 |
94 | win2000 이상의 도스프롬프트에서 영문코드 사용하기 | 조인상 | 2010.05.12 | 6356 |
93 | 바탕 화면 보기 파일 복구 시키기 | 조인상 | 2010.05.12 | 8587 |
92 | 윈도우즈 시리즈의 포트번호 | 조인상 | 2010.05.12 | 8811 |
91 | 자주 사용하는 NAT설정용 포트번호 | 조인상 | 2010.05.12 | 14302 |
90 | Windows 2003 최적화/시스템설정 변경 | 조인상 | 2010.05.12 | 14424 |
89 | [도스 스크립트] 날짜별 파일 만드는 방법(주로 백업에서) | 조인상 | 2010.05.12 | 13546 |
88 | 자주쓰는 관리툴 QuickPath | 조인상 | 2010.05.12 | 6480 |
87 | dep기능 해제방법 | 조인상 | 2010.05.12 | 13491 |
86 | 아웃룩 일정공유 | 조인상 | 2010.05.12 | 14550 |
85 | 바이오스에서 인식한 메모리만큼 OS에서 인식되지 않을때 | 조인상 | 2010.05.12 | 11899 |
84 | 프로세스 종료하는 명령어 taskkill | 조인상 | 2010.05.12 | 14783 |
83 | Quartz.dll 오류발생하였을때. | 조인상 | 2010.05.12 | 8740 |