ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • cmd - 날짜 관련 및 일정 기간 지난 파일 삭제 명령어
    etc 2020. 2. 5. 13:55
    반응형

    %date%     → 2020-02-04
    %date:~2% → 20-02-04
    %date:-=% → 20200204

    erp%date:-=%.dump

    명령으로 erp20200204.dump 생성하기

    forfiles /p "d:\backup" /s /m *.dump /d -30 /c "cmd /c del @file"

    해당 경로에 한달 전에 생성된 dump 파일 삭제 명령어.

     

    Forfiles

    Selects files in a folder or tree for batch processing.

    Syntax

    forfiles [/p Path] [/m SearchMask] [/s] [/c Command] [/d[{+ | -}] [{MM**/DD/**YYYY | DD}]]

    Parameters

    • /p Path
      Specifies the Path on which you want to start searching. The default folder is the current working directory, which you specify by typing a period (.).
    • /m SearchMask
      Searches files according to SearchMask. The default SearchMask is *.*.
    • /s
      Instructs forfiles to search in subdirectories.
    • /c Command
      Runs the specified Command on each file. You must wrap command strings with spaces in quotation marks. The default Command is "cmd /c echo @file".
    • /d[{+** | -}] [{MM/DD/YYYY | DD}]**
      Selects files with a date greater than or equal to (+) or less than or equal to (-) the specified date, where MM**/DD/**YYYY is the specified date and DD is the current date minus DD days. If you do not specify + or -, + is used. The valid range for DD is 0 - 32768.
    • /?
      Displays help at the command prompt.

     

    디스크에 쌓인 로그 파일을 주기적으로 정리하려는 과정에, 일정기간이 경과한 로그를 삭제하는 방법을 찾았습니다.
    DEL 명령어로는 날짜 인수를 넣을 수 없었는데, Forfiles 명령어에서는 가능하네요.
    ( Windows 2003, 7, 2008 에서(또는 그 이상 버전) 가능합니다. 이하 버젼에서는 추가로 다운로드해야함. )

    아래의 예문은 Log 디렉토리에 15일이 경과한 .log 확장자의 파일을 모두 삭제하는 명령어입니다.

    forfiles /p D:\Mail\SMTP25\Log /M *.log /D -15 /C "CMD /C del @file"

     



    좀 더 자세한 내용은 아래의 테크넷 정보를 참고하세요.

    http://technet.microsoft.com/ko-kr/library/cc755872(WS.10).aspx



    Forfiles

    폴더나 트리에서 일괄 처리할 파일을 선택합니다.

    구문

    forfiles [/pPath] [/mSearchMask] [/s] [/cCommand] [/d[{+ | -}] [{MM/DD/YYYY | DD}]]

    매개 변수

    /pPath검색을 시작할 Path를 지정합니다. 기본 폴더는 현재의 작업 디렉터리이며 마침표(.)를 입력하여 지정합니다./mSearchMaskSearchMask에 따라 파일을 검색합니다. 기본 SearchMask는 *.*입니다./sforfiles가 하위 디렉터리에서 검색하도록 지정합니다./cCommand각 파일에 대해 지정된 Command를 실행합니다. 공백이 있는 명령 문자열은 따옴표로 묶어야 합니다. 기본 Command는 "cmd /c echo @file"입니다./d[{+ | -}] [{MM/DD/YYYY | DD}]지정된 날짜나 이후(+) 날짜 또는 이전(-) 날짜의 파일을 선택합니다. 여기서 MM/DD/YYYY는 지정된 날짜이고 DD는 현재 날짜에서 DD일을 뺀 날짜입니다. + 또는 -를 지정하지 않으면 +가 사용됩니다. DD의 유효 범위는 0 - 32768입니다./?명령 프롬프트에 도움말을 표시합니다.

    설명

    • Forfiles는 배치 파일에서 가장 일반적으로 사용되는 명령입니다.
    • Forfiles dir /s와 유사합니다.
    • 다음 표는 /cCommand 명령 문자열에서 사용할 수 있는 변수 목록을 보여 줍니다.
      변수설명

      file

      파일 이름

      @fname

      확장명을 제외한 파일 이름

      @ext

      파일 확장명

      @path

      파일의 전체 경로

      @relpath

      파일의 상대 경로

      @isdir

      파일 형식이 디렉터리이면 TRUE이고 그렇지 않으면 FALSE입니다.

      @fsize

      파일 크기(바이트)

      @fdate

      마지막으로 수정한 파일의 날짜 스탬프

      @ftime

      마지막으로 수정한 파일의 시간 스탬프

    • Forfiles를 사용하면 여러 파일에 대해 명령을 실행하거나 여러 파일로 인수를 전달할 수 있습니다. 예를 들어 트리에서 확장명이 *.txt인 모든 파일에 대해 TYPE 명령을 실행할 수 있습니다. 또는 "Myinput.txt" 파일을 첫 번째 인수로 사용하여 C:\ 드라이브의 모든 배치 파일(*.bat)을 실행할 수 있습니다.
    • Forfiles를 사용하여 다음 작업 중 하나를 수행할 수 있습니다.
      • /d를 사용하여 절대 또는 상대 날짜별로 파일을 선택합니다.
      • @fsize(파일 크기)와 @fdate(파일 날짜) 같은 변수를 사용하여 파일의 보관 트리를 작성합니다.
      • @isdir 변수를 사용하여 파일을 디렉터리와 구분합니다.
      • 명령줄에 특수 문자를 포함시키고 16진수 코드 0xHH로 문자를 묶어 출력 형식을 지정합니다.
    • Forfiles는 파일 하나만 처리하도록 디자인된 도구에 대해 recurse subdirectories 플래그를 구현하여 작동합니다.

    C: 드라이브에 있는 모든 배치 파일의 목록을 표시하려면 다음과 같이 입력합니다.

    forfiles /p c:\ /s /m*.bat /c"cmd /c echo @file is a batch file"

    C: 드라이브에 있는 모든 디렉터리의 목록을 표시하려면 다음과 같이 입력합니다.

    forfiles /p c:\ /s /m*.* /c"cmd /c if @isdir==true echo @file is a directory"

    C: 드라이브에 있는 100일 이상된 모든 파일의 목록을 표시하려면 다음과 같이 입력합니다.

    forfiles /p c:\ /s /m*.* /dt-100 /c"cmd /c echo @file : date >= 100 days"

    C: 드라이브에 있는 1993년 1월 1일 이전의 모든 파일을 나열하고 해당 파일에 대해 "file is quite old!"를 표시하려면 다음과 같이 입력합니다.

    forfiles /p c:\ /s /m*.* /dt-01011993 /c"cmd /c echo @file is quite old!"

    C: 드라이브에 있는 모든 파일의 확장명을 열 형식으로 나열하려면 다음과 같이 입력합니다.

    forfiles /p c:\ /s /m*.* /c "cmd /c echo extension of @file is 0x09@ext0x09" With:

    C: 드라이브에 있는 모든 배치 파일의 목록을 표시하려면 다음과 같이 입력합니다.

    forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file is a batch file"

    C: 드라이브에 있는 모든 디렉터리의 목록을 표시하려면 다음과 같이 입력합니다.

    forfiles /p c:\ /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"

     

    Ref - https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.10/cc755872(v=ws.10)?redirectedfrom=MSDN

     

    Forfiles: Management Services

    Forfiles 10/08/2009 4 minutes to read In this article --> Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2 Forfiles Selects files in a folder or tree for batch processing. Syntax forfiles [

    docs.microsoft.com

     

    반응형

    댓글

Designed by Tistory.