forfiles 사용법

운영자 2018.03.08 22:23:33

forfiles 사용법

C:\Users\Administrator>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 +2010-11-19 /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"

 

 

ex:

 

Delete the log if it is is 7 days old or older:

FORFILES /p D:\Logs\LogFiles\W3SVC3 /m *.log /d -7 /c "cmd /c del @file"

 

Print a warning if the testfile is 5 days old or older:

FORFILES /m testfile.txt /c "cmd /c echo file is too old" /d -5

 

Delete the testfile if it is is 5 days old or older:

FORFILES /m testfile.txt /c "cmd /c Del testfile.txt " /d -5

 

Find .xls file that were last modified 30 days ago or longer

FORFILES /M *.xls /C "cmd /c echo @path was changed 30 days ago" /D -30

 

List the size of all .doc files:

FORFILES /S /M *.doc /C "cmd /c echo @fsize"