forfiles

Wybiera i uruchamia polecenie w pliku lub zestawie plików. To polecenie jest najczęściej używane w plikach wsadowych.

Syntax

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

Parameters

Parameter Description
/P <pathname> Określa ścieżkę, z której ma rozpocząć wyszukiwanie. Domyślnie wyszukiwanie rozpoczyna się w bieżącym katalogu roboczym.
/M <searchmask> Wyszukuje pliki zgodnie z określoną maską wyszukiwania. Domyślna maska wyszukiwania to *.
/S Nakazuje poleceniu forfiles rekurencyjne przeszukiwanie podkatalogów.
/C <command> Uruchamia określone polecenie w każdym pliku. Ciągi poleceń powinny być opakowane w cudzysłowy. Domyślne polecenie to "cmd /c echo @file".
/D [{+\|-}][{<date> | <days>}] Wybiera pliki z datą ostatniej modyfikacji w określonym przedziale czasu:
  • Wybiera pliki, których data ostatniej modyfikacji jest późniejsza lub równa (+) lub wcześniejsza lub równa (-) określonej dacie, gdzie data jest w tym samym formacie regionalnym co urządzenie z systemem Windows, na przykład MM/DD/RRRR dla języka angielskiego (Stany Zjednoczone).
  • Wybiera pliki z datą ostatniej modyfikacji później niż lub równe (+) bieżąca data plus określona liczba dni lub wcześniejsza niż lub równa (-) bieżąca data pomniejszona o określoną liczbę dni.
  • Prawidłowe wartości dni obejmują dowolną liczbę z zakresu od 0 do 32 768. Jeśli nie określono żadnego znaku, + jest używany domyślnie.
/? Wyświetla tekst pomocy w oknie cmd.

Remarks

  • Polecenie forfiles /S jest podobne do dir /S.

  • W ciągu polecenia można użyć następujących zmiennych określonych przez opcję wiersza polecenia /C :

    Variable Description
    @FILE File name.
    @FNAME Nazwa pliku bez rozszerzenia.
    @EXT Rozszerzenie nazwy pliku.
    @PATH Pełna ścieżka pliku.
    @RELPATH Ścieżka względna pliku.
    @ISDIR Zwraca wartość TRUE, jeśli typ pliku jest katalogiem. W przeciwnym razie ta zmienna zwraca wartość FALSE.
    @FSIZE Rozmiar pliku w bajtach.
    @FDATE Sygnatura daty ostatniej modyfikacji pliku.
    @FTIME Sygnatura czasowa ostatniej modyfikacji pliku.
  • Polecenie forfiles umożliwia uruchomienie polecenia lub przekazanie argumentów do wielu plików. Na przykład można uruchomić polecenie type na wszystkich plikach w drzewie z rozszerzeniem .txt nazwy pliku. Możesz też wykonać każdy plik wsadowy (*.bat) na dysku C z nazwą pliku Myinput.txt jako pierwszy argument.

  • To polecenie może wykonywać następujące czynności:

    • Wybieranie plików według daty bezwzględnej lub względnej przy użyciu parametru /d .

    • Utwórz drzewo archiwum plików przy użyciu zmiennych, takich jak @FSIZE i @FDATE.

    • Rozróżnianie plików od katalogów przy użyciu zmiennej @ISDIR.

    • Dołącz znaki specjalne do wiersza polecenia, używając kodu szesnastkowego dla znaku, w formacie 0xHH (na przykład 0x09 dla tabulatora).

  • To polecenie działa przez zaimplementowanie flagi recurse subdirectories na narzędziach, które są przeznaczone do przetwarzania tylko jednego pliku.

Examples

Aby wyświetlić listę wszystkich plików wsadowych na dysku C, wpisz:

forfiles /P c:\ /S /M *.bat /C "cmd /c echo @file is a batch file"

Aby wyświetlić listę wszystkich katalogów na dysku C, wpisz:

forfiles /P c:\ /S /M * /C "cmd /c if @isdir==TRUE echo @file is a directory"

Aby wyświetlić listę wszystkich plików w bieżącym katalogu, które mają co najmniej jeden rok, wpisz:

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

Aby wyświetlić plik tekstowy jako nieaktualny dla każdego z plików w bieżącym katalogu, które są starsze niż 1 stycznia 2007 r., należy wpisać:

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

Aby wyświetlić listę rozszerzeń nazw plików wszystkich plików w bieżącym katalogu w formacie kolumny i dodać kartę przed rozszerzeniem, wpisz:

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