Użyj plików do przetwarzania plików na podstawie wieku

Zawsze dobrze jest znać magię wiersza poleceń, ponieważ czasami łatwiej jest przetwarzać polecenia w ten sposób.

W tym przewodniku przedstawiono polecenie Forfiles w systemach Windows Vista i Windows 7 (aktualizacja: dostępna również w nowszych wersjach systemu Windows).

Forfile mogą przetwarzać pliki na podstawie nazw, rozszerzeń plików i wieku. Można na przykład znaleźć wszystkie dokumenty w katalogu starszym niż 20 dni lub wszystkie dokumenty w katalogu c: \, które zostały zmienione od określonej daty.

Polecenie forfiles można połączyć z opcjami przetwarzania, aby usunąć te pliki lub utworzyć listę wszystkich plików pasujących do filtrów. Przyjrzyjmy się bliżej poleceniu forfiles.

FORFILES [/ P nazwa ścieżki] [/ M maska ​​wyszukiwania] [/ S] [/ C polecenie] [/ D [+ | -] Dd / mm / rrrr ]

Opis: Wybiera plik (lub zestaw plików) i wykonuje polecenie na tym pliku. Jest to pomocne w przypadku zadań wsadowych.

Lista parametrów:

  • / P nazwa ścieżki Wskazuje ścieżkę do rozpoczęcia wyszukiwania. Domyślnym folderem jest bieżący katalog roboczy (.).
  • / M maska ​​wyszukiwania Przeszukuje pliki według maski wyszukiwania. Domyślna maska ​​wyszukiwania to „*”.
  • / S Nakazuje plikom ponowne przechodzenie do podkatalogów. Jak „DIR / S”.
  • Komenda / C Wskazuje komendę do wykonania dla każdego pliku. Ciągi poleceń powinny być owinięte podwójnymi cudzysłowami. Domyślne polecenie to „cmd / c echo @file”.

W ciągu komend można użyć następujących zmiennych:

  • @plik - zwraca nazwę pliku.
  • @nazwa - zwraca nazwę pliku bez rozszerzenia.
  • @ext - zwraca tylko rozszerzenie pliku.
  • @ ścieżka - zwraca pełną ścieżkę do pliku.
  • @relpath - zwraca ścieżkę względną pliku.
  • @isdir - zwraca „TRUE”, jeśli typ pliku to katalog, a „FALSE” dla plików.
  • @fsize - zwraca rozmiar pliku w bajtach.
  • @fdate - zwraca datę ostatniej modyfikacji pliku.
  • @ftime - zwraca czas ostatniej modyfikacji pliku.

Aby dołączyć znaki specjalne do wiersza poleceń, użyj kodu szesnastkowego dla znaku w formacie 0xHH (np. 0x09 dla tab). Wewnętrzne polecenia CMD.exe powinny być poprzedzone „cmd / c”.

/ D data Wybiera pliki z datą ostatniej modyfikacji większą lub równą (+), lub mniejszą lub równą (-), określoną datę w formacie „dd / MM / rrrr”; lub wybiera pliki z datą ostatniej modyfikacji większą lub równą (+) bieżącej dacie plus dni „dd” lub mniejszą lub równą (-) bieżącą datą minus „dd” dni. Prawidłowa liczba „dd” dni może być dowolną liczbą z zakresu od 0 do 32768. „+” jest traktowane jako znak domyślny, jeśli nie jest określony.

/? Wyświetla ten komunikat pomocy. Ten plik pomocy można otworzyć, wprowadzając polecenie forfiles /? w wierszu polecenia. Naciśnij Windows-R, wpisz cmd i naciśnij klawisz Enter, aby uruchomić wiersz poleceń w systemie Windows.

Komenda forfiles /P c:\test\ /M .doc /S /D -10 przeszukuje katalog c: \ test i wszystkie jego podkatalogi w poszukiwaniu plików z rozszerzeniem .doc starszych niż 10 dni.

Parametr / p, po którym następuje katalog, określa katalog początkowy, / s włącza wyszukiwanie w podkatalogach, / m filtruje pliki i foldery na podstawie wprowadzonego ciągu, a / D określa datę lub przedział czasu.

Komenda / C służy do przetwarzania plików, które znajdują się dalej. Można go na przykład użyć do uruchomienia następującej komendy: /C "cmd /c echo @fname" > test.txt nazwy każdego znalezionego pliku i zapisz wyniki w pliku text.txt w tym samym katalogu.

Pełne polecenie wygląda wtedy tak: forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt

Inną możliwością jest usunięcie plików pasujących do wyszukiwania, odbywa się to za pomocą polecenia /C "cmd /c del @File

Zaleca się jednak przetestowanie danych wyjściowych przed wydaniem polecenia delete, aby upewnić się, że usuwane są tylko odpowiednie pliki. Doświadczeni użytkownicy mogą utworzyć plik wsadowy, aby regularnie uruchamiać pliki.