Envato Elements - pobieraj co chcesz, ile chcesz

Dawno, dawno temu, w czasach Windows 7 – a być może jeszcze wcześniej – stworzyłem skrypt, który z pewnych względów regularnie skanował wybrane zasoby dyskowe i ich zawartość zapisywał do pliku tekstowego. I tak sobie skrypt bezobsługowo działał, regularnie zapisywał listę (i szczegóły plików), aż dziś zwróciłem uwagę, że coś się format daty z jakim zapisywane pliki zmienił.

Formatu daty w skryptach BAT/CMD

Sam skrypt to nic skomplikowanego, jedno proste polecenie systemowe, które skanuje zdefiniowane katalogi, a wynik swojej pracy zapisuje do pliku tekstowego, którego nazwa jest ustawiana automatycznie, na podstawie daty systemowej:

dir /s /n > %date%.txt

Do niedawna wynikiem jego działania były pliki o nazwach zapisanych wg formatu:

yyyy-mm-dd.txt

Kilka miesięcy temu, zapewne podczas którejś z aktualizacji Windows 10 coś się musiało zmienić, i pliki zaczęły zapisywać się w odwrotnym formacie, czyli:

dd.mm.yyyy.txt

Niby szczegół, ale przyzwyczajony jestem, że choćby ze względu na lepszą segregację plików idziemy od roku, przez miesiąc, aż do dnia – zgodnie z częstotliwością zmian.

Niestety funkcja „date” (zmienna %date%) nie pozwala na wybranie formatu w jakim chcemy wyświetlić datę, dlatego musiałem lekko zmodyfikować skrypt, tak by najpierw wyświetlał się rok, potem miesiąc, a na końcu dzień:

set "AktualnaData=%date:~6,4%-%date:~3,2%-%date:~0,2%"
dir /s /n > %AktualnaData%.txt

Tak więc:

%date% -> 30.08.2017
%date:~6,4%-%date:~3,2%-%date:~0,2% -> 2017-08-30
%date:~6,4%.%date:~3,2%.%date:~0,2% -> 2017.08.30
%date:~6,4%%date:~3,2%%date:~0,2% -> 20170830

Co można wyjaśnić tak:

ustaw NazwaZmiennej=[7, 8, 9 i 10 znak z %data%][rozdzielacz][4 i 5 znak z %data%][rozdzielacz][1 i 2 znak z %data%]

Najpierw ustawiamy/tworzymy zmienną AktualnaData, do której podstawiamy 4 znaki licząc od 6 ze zmiennej %data% (30.08.2017), wstawiamy (lub nie) wymagany znak rozdzielający, następnie z tej samej zmiennej %data% pobieramy 2 znaki licząc od 3, dodajemy ewentualnie kolejny znak rozdzielający, i kończymy 2 pierwszymi znakami ze zmiennej %data%, dzięki czemu otrzymujemy pożądany format daty (np. 2017-08-30).

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Janusz i Janusz dzięki motywowi Divi od Elegant Themes koszą siano robiąc strony
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Roztańczona Karolina dzięki motywowi Divi od Elegant Themes właśnie skończyła pierwszą stronę