원문 : 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

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 게시자료 열람자유. 불펌금지입니다. 조인상 2010.12.07 20698
42 윈도우즈 7 환경에서 스타크래프트 화면이 깨지거나 튕길때 file 조인상 2011.12.07 9817
41 페이징파일 사이즈를 4GB이상 적용하는 방법 조인상 2010.05.12 9664
40 Microsoft Remote Desktop Connection Manager - RDCM file 조인상 2014.06.18 9423
39 jdk-1_5_0_22 for windows i586 file 조인상 2010.06.15 9316
38 업데이트 에러 : 0x8024800a 해결방법 조인상 2015.07.17 9130
37 Remote Desktop Organizer file 조인상 2014.02.26 8830
36 윈도우즈 시리즈의 포트번호 조인상 2010.05.12 8811
35 2011년 3월 4일 - Ddos 전용백신 file 조인상 2011.03.07 8763
34 OS 버전별 메모리 지원 현황 조인상 2010.05.12 8758
33 Quartz.dll 오류발생하였을때. 조인상 2010.05.12 8740
32 보안경고용 월페이퍼 file 조인상 2010.05.11 8666
31 IE7에서 IE6로 다운그레이드하기 조인상 2010.05.12 8658
30 windows 2003 원격연결용 mmc file 조인상 2010.05.13 8625
29 바탕 화면 보기 파일 복구 시키기 조인상 2010.05.12 8587
28 파일 삭제 유틸 - CleanDrive file 조인상 2010.05.19 8579
27 Java SDK 6 u20 for windows 32bit [1] file 조인상 2010.05.13 8428
26 RS232C Null Modem Female-to-Female 핀배열 조인상 2015.09.03 8300
25 시스템 하드웨어 구성정보 확인툴 - AIDA file 조인상 2010.05.12 8174
24 현재 디스크볼륨 남은 공간 매일 저장하기 file 조인상 2010.05.12 8141
23 windows 시리즈 OS및 H/W환경 정보 보는 프로그램 - speccy file 조인상 2010.05.12 7885
서버에 요청 중입니다. 잠시만 기다려 주십시오...