다음을 통해 공유


forfiles

파일 또는 파일 집합에서 명령을 선택하고 실행합니다. 이 명령은 배치 파일에서 가장 일반적으로 사용됩니다.

구문

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

매개 변수

매개 변수 설명
/P <pathname> 검색을 시작 하는 경로 지정 합니다. 기본적으로 현재 작업 디렉터리에서 시작 검색 합니다.
/M <searchmask> 지정 된 검색 마스크에 따라 파일을 검색합니다. 기본 searchmask는 *입니다.
/S forfiles 명령이 하위 디렉터리를 재귀적으로 검색하도록 지시합니다.
/C <command> 각 파일에 지정된 된 명령을 실행합니다. 명령 문자열은 큰따옴표로 묶어야 합니다. 기본 명령은 "cmd /c echo @file"입니다.
/D [{+\|-}][{<date> | <days>}] 지정된 기간 내에 마지막으로 수정된 날짜가 있는 파일을 선택합니다.
  • 마지막 수정 날짜가 지정한 날짜보다 (+)보다 늦거나 같은 경우 또는 (-)보다 이르거나 같은 파일을 선택합니다. 여기서 날짜는 MM/DD/YYYY 형식입니다.
  • 마지막 수정 날짜가 현재 날짜에서 지정한 일 수를 더한 (+)보다 늦거나, 현재 날짜에서 지정한 일 수를 뺀 (-)보다 빠르거나 같은 파일을 선택합니다.
  • 의 유효한 값은 0~32,768 범위의 모든 숫자를 포함합니다. 기호가 없으면 지정 된 경우 + 기본적으로 사용 됩니다.
/? cmd 창에 도움말 텍스트를 표시합니다.

설명

  • forfiles /S 명령은 dir /S와 유사합니다.

  • /C 명령줄 옵션에서 지정된 대로 명령 문자열에 다음 변수를 사용할 수 있습니다.

    변수 설명
    @FILE 파일 이름입니다.
    @FNAME 확장명 없이 파일 이름입니다.
    @EXT 파일 이름 확장명입니다.
    @PATH 파일의 전체 경로입니다.
    @RELPATH 파일의 상대 경로입니다.
    @ISDIR 파일 형식을 디렉터리 이면 TRUE로 평가 합니다. 그렇지 않은 경우이 변수를 FALSE로 평가합니다.
    @FSIZE 파일 크기 (바이트)에서입니다.
    @FDATE 파일에 마지막으로 수정한 날짜 스탬프입니다.
    @FTIME 파일의 마지막 수정된 타임 스탬프입니다.
  • forfiles 명령을 사용하면 여러 파일에서 명령을 실행하거나 인수를 전달할 수 있습니다. 예를 들어, 실행할 수는 형식 .txt 파일 이름 확장명을 사용 하 여 트리의 모든 파일에서 명령입니다. 또는 C 드라이브에서 모든 배치 파일(*.bat)을 실행할 수 있으며, 파일 이름은 Myinput.txt를 첫 번째 인수로 사용할 수 있습니다.

  • 이 명령은 다음을 수행할 수 있습니다.

    • 파일을 사용 하 여 절대 날짜 또는 상대 날짜 선택은 /d 매개 변수입니다.

    • @FSIZE 및 @FDATE 등의 변수를 사용하여 파일의 아카이브 트리를 구축합니다.

    • @ISDIR 변수를 사용하여 디렉터리와 파일을 구분합니다.

    • 문자, 0 x에 대 한 16 진수 코드를 사용 하 여 명령줄에 특수 문자를 포함HH 형식 (예: 탭에는 0x09).

  • 이 명령은 단일 파일만 처리하도록 설계된 도구에서 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"

현재 디렉터리에 있는 파일을 적어도 1 년 전의 모든를 나열 하려면 다음을 입력 합니다.

forfiles /S /M *.* /D -365 /C "cmd /c echo @file is at least one year old."

현재 디렉터리에 있는 2007년 1월 1일보다 오래된 각 파일에 대해 텍스트 파일이 오래되었음을 표시하려면 다음을 입력합니다:

forfiles /S /M *.* /D -01/01/2007 /C "cmd /c echo @file is outdated."

열 형식으로 현재 디렉터리에 있는 모든 파일의 파일 이름 확장명을 나열 하 고 확장명 앞에 탭 추가 하려면 다음을 입력 합니다.

forfiles /S /M *.* /C "cmd /c echo The extension of @file is 0x09@ext"