Problem:
Potrzebny jest wpis bieżącej daty i godziny w pliku tekstowym, coś na wzór logów, oczywiście z wykorzystaniem najlepiej tylko poleceń konsolowych cmd, czyli bez korzystania z sed-a. Poniżej rozwiązanie uzyskiwania wartości daty trochę dłuższe, ale pokazujące możliwości wykorzystania zmiennych systemowych.Wykorzystane polecenia cmd
- date, time, find, set, echo
- potoki, < - przekierowanie do wnętrza polecenia,
>> -przekierowanie wyniku do pliku,
Od początku
Date i time - ustawiają lub wyświetlają bieżące informacji na temat daty i czasu. Teraz polecenia mają przełącznik /t który pozwala tylko wyświetlać, czyli to jest łatwiej ale nie zawsze tak było.
date /t
Nie zawsze tak było i wtedy aby uzyskać tylko datę można było przekierować plik zawierający znak entera. Taki plik bez treści, jedynie ze znakiem ENTER musisz przygotować i zapisać, u mnie to plik ent zapisany w katalogu ze skryptami. Czyli
date < ent
Teraz przekierujemy to do polecenia find aby wyciąć tylko tą linie która jest potrzebna
date < ent | find "current"
Teraz wycinanie potrzebnego fragmentu z całej linii wiersza, bo przecież potrzebna jest tylko sama wartość daty czyli 06.01.2022. Tu przyda się przekierowanie wyników do pliku i użycie dodatkowej zmiennej systemowej deklarowanej poleceniem set czyli kolejno:
to samo dla date
Teraz masz dwie zmienne %ttmp% i %dtmp%, które zawierają pełny wiersz z którego trzeba wycinać potrzebne teksty.
Weż odpowiedni fragment (czyli od 21 znaku 10 kolejnych) ze zmiennej %dtmp% i dodaj tez odpowiedni fragment zmiennej %ttmp% i to wyślij to pliku, tu harmonogram.txt.
Samo wycinanie potrzebnych fragmentów z zadeklarowanych zmiennych (bez wysyłania do pliku) działa jak niżej:
Jeśli wyślesz te wyniki do pliku tekstowego to masz plik typu log z datą i czasem. Tu jest przykład takiego pliku harmonogram.txt w którym notuje działanie skryptu (jakiego to już inna para kaloszy) wywoływanego poprzez windowsowy harmonogram zadań, vide wiem kiedy windows wyzwolił ten skrypt.
Na koniec sprzątanie
Całość tego skryptu wygląda tak
Komentarze
Prześlij komentarz