원문 : 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 20650
81 windows용 개인방화벽 - commodo file 조인상 2010.05.12 7755
80 windows 시리즈 OS및 H/W환경 정보 보는 프로그램 - speccy file 조인상 2010.05.12 7879
79 현재 디스크볼륨 남은 공간 매일 저장하기 file 조인상 2010.05.12 8136
78 시스템 하드웨어 구성정보 확인툴 - AIDA file 조인상 2010.05.12 8169
77 RS232C Null Modem Female-to-Female 핀배열 조인상 2015.09.03 8284
76 Java SDK 6 u20 for windows 32bit [1] file 조인상 2010.05.13 8419
75 파일 삭제 유틸 - CleanDrive file 조인상 2010.05.19 8574
74 바탕 화면 보기 파일 복구 시키기 조인상 2010.05.12 8584
73 windows 2003 원격연결용 mmc file 조인상 2010.05.13 8623
72 IE7에서 IE6로 다운그레이드하기 조인상 2010.05.12 8652
71 보안경고용 월페이퍼 file 조인상 2010.05.11 8660
70 Quartz.dll 오류발생하였을때. 조인상 2010.05.12 8734
69 OS 버전별 메모리 지원 현황 조인상 2010.05.12 8750
68 2011년 3월 4일 - Ddos 전용백신 file 조인상 2011.03.07 8757
67 윈도우즈 시리즈의 포트번호 조인상 2010.05.12 8805
66 Remote Desktop Organizer file 조인상 2014.02.26 8815
65 업데이트 에러 : 0x8024800a 해결방법 조인상 2015.07.17 9110
64 jdk-1_5_0_22 for windows i586 file 조인상 2010.06.15 9305
63 Microsoft Remote Desktop Connection Manager - RDCM file 조인상 2014.06.18 9414
62 페이징파일 사이즈를 4GB이상 적용하는 방법 조인상 2010.05.12 9656
서버에 요청 중입니다. 잠시만 기다려 주십시오...