원문 : 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 에 기록된 NIC 의 MAC Address 확인 방법 조인상 2013.11.13 14453
80 Windows 2003 최적화/시스템설정 변경 조인상 2010.05.12 14413
79 자주 사용하는 NAT설정용 포트번호 조인상 2010.05.12 14285
78 노트북을 무선공유기로 - Connectify file 조인상 2011.03.04 14156
77 usrmgmt.msc(로컬사용자및그룹) 실행시 MMC를 열수 없다고 에러 메시지 발생 file 조인상 2013.08.31 13962
76 Windows 2008에서 특정 포트를 물고 있는 프로세스 확인하기 조인상 2012.10.16 13536
75 [도스 스크립트] 날짜별 파일 만드는 방법(주로 백업에서) 조인상 2010.05.12 13534
74 dep기능 해제방법 조인상 2010.05.12 13480
» 7-zip 으로 폴더 압축후 백업디렉토리로 옮긴후 지정일 이후 파일 삭제하기 조인상 2015.02.27 13119
72 MS 터미널서비스클라이언트(mstsc:원격데스크톱연결) 설치 file 조인상 2010.05.12 12993
71 Windows 2012 메트로UI 를 기존 UI로 변경하기 조인상 2013.01.31 12939
70 "framedyn.dll 을 찾을수 없으므로 응용프로그램을 시작하지 못했습니다 "문제 해결방법 조인상 2010.05.12 12724
69 windows 2008 에서 암호변경시 복잡성 규칙에 맞지 않을때 file 조인상 2010.05.12 12711
68 FTP 백업 스크립트 조인상 2014.05.13 12569
67 Qlogic 2340 HBA카드 드라이버&유틸리티 file 조인상 2010.05.12 12294
66 starcraft 배틀넷 서버 구동 - PvPGN 서버 file 조인상 2010.06.03 12259
65 탐색기에서 현재 path로 시작하는 cmd 창 띄우기 [1] 조인상 2010.05.12 12235
64 Windows XP FLP 버전 한영키로 한글변환하기 조인상 2011.01.15 12228
63 usb메모리 스틱 으로 윈도우xp설치하기 조인상 2010.05.12 12098
62 IUSR, IWAM 유저로 인한 Server Application Error 대처법 조인상 2011.05.04 12013
서버에 요청 중입니다. 잠시만 기다려 주십시오...