자유게시판

특정 폴더 안에 있는 파일을 주기적으로 삭제 알아봅니다.

작성자 정보

  • 삼둡 작성
  • 작성일

컨텐츠 정보

본문

-----------------------------------

다음 --- 을 볼때까지 안보셔도 됩니다.

forfiles [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] [date | days]

 

 

forfile는 windows에서 사용하는 명령어인데

파일들에 대해 루프를 돌리듯이 여러 번 실행하게 합니다.

 

 

forfile /P d:\deletefolder /S /M *.* /D -3 /C "cmd /c del @file"

 

해석하자면 아래와 같습니다.

 

forfile : file에 대해서 루프를 돌릴겁니다.

/P 파일 경로를 후술합니다.

/S 하위 폴더까지 다 쳐주세요

/M 대상 파일을 후술합니다.

/D 며칠 이전 파일을 지정할지 -를 붙여서 후술합니다.

/C 후술 명령을 실행합니다 "명령어"

cmd 명령프롬프트로 실행합니다. 후술을

cmd /c 뒤에 나오는 문자열을 처리해서 명령프롬프트로 실행합니다.

del @file forfile에서 결과물로 나오는 파일을 삭제합니다.

 

 

--

여튼 메모장으로 저걸 적은후에

 

deltest.bat 로 저장합니다.

0c0dcba10e31e8589feaa1f1b7e5f1a0a23dd004q8wl.png

 

/d -0 으로 해도 안지워지네요

 

다시 해야할듯

 

 

 

forfile /P d:\deletefolder -s -m *.* /D -0 /C "cmd /c del @path"

 

검색해서 이렇게 했는데도 안됩니다.

 

 

 

 

forfile /D 0 /P "d:\deletefolder" /M "*" /c "cmd /C IF @isdir==FALSE ( del /q @path ) ELSE ( rd /S /Q @path )"

 

이번에는 이걸로 테스트

 

안됨

 

 

 

forfile /p "d:\deletefolder" /s /m *.* /d -0 /c "cmd /c del @path"

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 +2024-5-13 /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"

 

FORFILES /P D:\DELETEFOLDER /S /M *.* /C "CMD /C DEL @file"

 

-------------------------------------------------------------

 

FORFILES /P D:\DELETEFOLDER /S /M *.* /C "CMD /C DEL @file" 

 

메모장에 위 한줄 적고 폴더는 원하는 위치를 저장하고

deletefolder.exe 정도로 저장합니다.

c:\program files\에 저장하는게 좋긴할듯

 

이 내용 저장한

탐색기에서 관리자권한으로 실행하면 안되던게

명령프롬프트에서 하면 된다 ㅜㅜ

 

 

 

----

 

이제 작업스케줄러 등록

 

ae590e41ccec381b1e0c8ed653389fc70e8047c91q7h.png

 

 

e7573411c92c307ed5a7fee6ac33c367f3b26c665drm.png

 

 

ec5e10cf424737dea96c8905b8724433ae856d59ldqi.png

 

 

19e62e24bbd960ad0d68a5f4a840ea96e0e53938265i.png

 

 

bc1638e0ff141ddaaa8c81207c9b880fffe31d9c8eik.png

아까 만든 배치파일 선택

FORFILES /P D:\DELETEFOLDER /S /M *.* /C "CMD /C DEL @file" 이 내용 저장한

c35a2265928270d791cddb64fce124e5bfb2c60681qi.png

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

인기검색어


최근글


새댓글