Polecenie 'forfiles’
Bardzo ciężko jest się przyznać do własnej niewiedzy. Jednak czasami trzeba. Ostatnio musiałem się zmierzyć z problemem usuwania logów aplikacji po 14 dniach na serwerze Windows 2008R2. Zadanie dosyś proste jeśli myślimy o środowisku Linuksa. Czy jest tak samo w przypadku Widnows? Rzecz jasna można skorzystać z bibliotek Cygwin, ale tak czy inaczej będzie to forma protezy. Dlatego zabrałem się za przeglądanie Internetu i po chwili, po raz pierwszy, natknąłem się na program/polecenie forfiles. Uruchamiane klasycznie z linii poleceń pozwala zbudować prosty skrypt, który po dodaniu do harmonogramu zadań systemowych będzie czyścił logi. Poniżej przyklad:
forfiles /S /D -14 /P "Dysk:\Log\" /M *.log /C "cmd /c del @file"
Sprawdziłem i działa całkiem dobrze:) Można powiedzieć, że w pewnym sensie Microsoft dostarczył odpowiednik linuksowego polecenia 'find’. Na zakończenie, skrócona lista opcji programu 'forfiles’:
/P nazwa_ścieżki Wskazuje ścieżkę do rozpoczęcia wyszukiwania.
Folderem domyślnym jest bieżący katalog
roboczy (.).
/M maska_wyszukiwania Wyszukuje pliki według maski wyszukiwania.
Domyślna maska wyszukiwania to '*' .
/S Nakazuje poleceniu forfiles przejście do
podkatalogów. Na przykład: "DIR /S".
/C polecenie Wskazuje polecenie, które ma być wykonane dla
każdego pliku. Ciągi polecenia powinny
być ujęte w cudzysłów.
Domyślne polecenie to: "cmd /c echo @file".
Następujące zmienne mogą być używane w
ciągu polecenia:
@file - zwraca nazwę pliku.
@fname - zwraca nazwę bez
rozszerzenia.
@ext - zwraca tylko rozszerzenie
pliku.
@path - zwraca pełną ścieżkę pliku.
@relpath - zwraca ścieżkę względną
pliku.
@isdir - zwraca wartość "TRUE" dla katalogu i
"FALSE" dla pliku.
@fsize - zwraca rozmiar pliku w bajtach.
@fdate - zwraca datę ostatniej modyfikacji
pliku.
@ftime - zwraca godzinę ostatniej modyfikacji
pliku.
/D data Zaznacza pliki z datą ostatniej modyfikacji taką
samą lub późniejszą (+) bądź taką samą lub
wcześniejszą (-) od określonej daty, korzystając
z formatu "yyyy-MM-dd"; zaznacza również pliki
z datą ostatniej modyfikacji taką samą lub
późniejszą (+) od bieżącej daty +"dd" dni bądź
taką samą lub wcześniejszą (-) od bieżącej daty.
Liczba dni "dd" musi być zzakresu 0-32768.
Jeżeli nie określono żadnego znaku, domyślnie
zostanie użyty znak "+".
MG
Tagi: komendy, linia poleceń, polecenia, serwer, Windows