원문 : 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 20232
100 Windows에서 Disk I/O 성능 측정하기 - diskspd file chosim1 2020.03.11 163
99 [보안 권고] 클롭(CLOP) 랜섬웨어 동향 및 대응 방안 - 스크랩 ischo 2019.09.10 344
98 스크립트 : 활성 NIC에 DNS서버 변경하기 ischo 2017.09.01 3878
97 Windows 2012 에서 원격데스크탑 세션 개수 무제한 처리 조인상 2017.01.10 5923
96 특정포트로 ping을 날리는 유틸 file 조인상 2016.10.07 7277
95 RS232C Null Modem Female-to-Female 핀배열 조인상 2015.09.03 7971
94 업데이트 에러 : 0x8024800a 해결방법 조인상 2015.07.17 8821
» 7-zip 으로 폴더 압축후 백업디렉토리로 옮긴후 지정일 이후 파일 삭제하기 조인상 2015.02.27 11970
92 windows 7에서 C드라이브만을 백업대상으로 해서 D드라이브로 이미지백업하기 조인상 2014.09.19 10849
91 ahnlab V3 update용 도메인 및 IP 조인상 2014.07.19 10646
90 windows update를 위한 도메인 및 IP리스트 조인상 2014.07.18 13933
89 Microsoft Remote Desktop Connection Manager - RDCM file 조인상 2014.06.18 9107
88 FTP 백업 스크립트 조인상 2014.05.13 12154
87 Remote Desktop Organizer file 조인상 2014.02.26 8524
86 Windows 에 기록된 NIC 의 MAC Address 확인 방법 조인상 2013.11.13 13696
85 작업관리자가 비활성화 되어있는 경우 조인상 2013.10.21 14561
84 usrmgmt.msc(로컬사용자및그룹) 실행시 MMC를 열수 없다고 에러 메시지 발생 file 조인상 2013.08.31 13535
83 Windows 2008 환경에서 분실한 패스워드 초기화 조인상 2013.06.05 22066
82 Windows 2012 메트로UI 를 기존 UI로 변경하기 조인상 2013.01.31 12596
81 운영체제별 TTL값 차이 조인상 2013.01.18 15674
서버에 요청 중입니다. 잠시만 기다려 주십시오...