특정 폴더 안에 있는 파일을 주기적으로 삭제 알아봅니다.
작성자 정보
- 삼둡 작성
- 작성일
컨텐츠 정보
- 2,566 조회
- 목록
본문
-----------------------------------
다음 --- 을 볼때까지 안보셔도 됩니다.
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 로 저장합니다.

/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\에 저장하는게 좋긴할듯
이 내용 저장한
탐색기에서 관리자권한으로 실행하면 안되던게
명령프롬프트에서 하면 된다 ㅜㅜ
----
이제 작업스케줄러 등록





아까 만든 배치파일 선택
FORFILES /P D:\DELETEFOLDER /S /M *.* /C "CMD /C DEL @file" 이 내용 저장한

관련자료
-
첨부등록일 2024.05.13 16:03
-
이전
-
다음