출처 : http://syskb.blogspot.kr/2013/05/for-files.html
백업 기간 지난 파일 삭제 명령어 For FIles 사용법.
시스템 관리자들이 귀찮아 하는 것중에 하나가 기간이 지난 백업파일을 로컬에서 삭제하는 작업입니다.
예전에는 VB를 이용하여 하는 방법을 주로 사용했지만 자비로우신? MS 에서 명령줄로 처리하는 내용을 주셔서 고맙게 적용하였습니다.
아래는 MSDN 내용.
예제 ) traget 폴더에 있는 수정된지 5일이 지난 모든 파일 삭제
ForFiles /P D:\target /S /M * /D -5 /C "cmd /c del /Q @file"
엌ㅋ 감오시죠? 좋죠?
하지만 UNC(공유폴더) 작업은 안되는 것으로 보여 네트워크 작업을 할때는 맨 아래 VB소스를 참고하세요. 저는 안써봤습니다. 퍼왔음 -_-;
소스 출처는 ( http://cafe.naver.com/ilikefox/1032 ) 입니다.
For FIles 사용법
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 +2010-10-11 /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"
UNC (공유폴더) 기간 지난 파일 삭제 비주얼 베이직 스크립트
'************ Start of Code **********************
Option Explicit
On Error Resume Next
Dim oFSO, oFolder, sDirectoryPath
Dim oFileCollection, oFile, sDir
Dim iDaysOld
' Specify Directory Path From Where You want to clear the old files
sDirectoryPath = \\server1\delete_test
' Specify Number of Days Old File to Delete
iDaysOld = 2
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sDirectoryPath)
Set oFileCollection = oFolder.Files
For each oFile in oFileCollection
'This section will filter the log file as I have used for for test case
'Specify the Extension of file that you want to delete
'and the number with Number of character in the file extension
If LCase(Right(Cstr(oFile.Name), 3)) = "log" Then
If oFile.DateLastModified < (Date() - iDaysOld) Then
oFile.Delete(True)
End If
End If
Next
Set oFSO = Nothing
Set oFolder = Nothing
Set oFileCollection = Nothing
Set oFile = Nothing
'**************** End of Code *******************
'프로그램 > ASP' 카테고리의 다른 글
ASP 에서 엑셀로 다운로드 (0) | 2021.01.12 |
---|---|
GUID, UUID 생성 (0) | 2021.01.12 |
mssql에서 대량의 db 데이터 쿼리 시 사용하는 방법 (0) | 2021.01.10 |
ASP 에서 엑셀로 다운로드 (0) | 2021.01.10 |
ServerXMLHTTP 을 함수로 만들어 사용하자 (0) | 2021.01.10 |