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