Komenda forfiles
umożliwia wyszukiwanie plików według określonych kryteriów (np. daty modyfikacji, nazwy, rozszerzenia) i wykonywanie na nich operacji, takich jak usuwanie czy uruchamianie skryptów. Jest często używana w automatyzacji zadań administracyjnych i czyszczenia plików.
forfiles [/p ścieżka] [/m maska] [/s] [/d [+ | -]data] [/c polecenie] [/q]
Pozwala przeszukiwać wskazany katalog (i opcjonalnie podkatalogi) w poszukiwaniu plików pasujących do warunków.
Dla każdego znalezionego pliku można wykonać zdefiniowaną komendę.
Parametr Opis /p ścieżka
Określa katalog, w którym mają być przeszukiwane pliki (domyślnie bieżący katalog). /m maska
Używa wzorca (np. *.txt
) do filtrowania plików. /s
Przeszukuje również podkatalogi. `/d [+ -]data` Filtruje pliki według daty modyfikacji. +
– starsze niż, -
– nowsze niż podana data (w dniach). /c polecenie
Definiuje polecenie do wykonania dla każdego pliku. Można używać zmiennych takich jak @file
, @path
, @fsize
, @fdate
. /q
Tryb cichy – ukrywa komunikaty podczas działania komendy.
forfiles /p C:\Logi /m *.log /d -30
# Usunięcie plików .tmp starszych niż 7 dni z podkatalogami
forfiles /p C:\Temp /m *.tmp /s /d -7 /c " cmd /c del @path "
# Uruchomienie skryptu na każdym pliku .txt w folderze C:\Dane
forfiles /p C:\Dane /m *.txt /c " cmd /c echo Przetwarzanie pliku: @file "
Komenda wymaga uruchomienia z uprawnieniami administratora, jeśli operuje na chronionych katalogach.
Może być wykorzystywana do automatyzacji w harmonogramie zadań Windows (Task Scheduler).
Zmiennych @file
, @path
, @fsize
, @fdate
można używać do dynamicznego przetwarzania plików.
Błąd / Komunikat Przyczyna Rozwiązanie ERROR: No files found with the specified search criteria.
Brak plików spełniających kryteria wyszukiwania Sprawdź maskę plików i parametry daty, upewnij się, że pliki istnieją. Access is denied
Brak odpowiednich uprawnień Uruchom CMD jako administrator. Nie działa parametr /d
Nieprawidłowy format daty lub znaków +/-
Sprawdź składnię, użyj liczby dni (np. /d -30
) lub poprawnego formatu.