Windows: zmienna środowiskowa %DATE%
Czasami w różnych aplikacjach, gdzie nasze pliki są tworzone automatycznie (z reguły programy do tworzenia kopii zapasowych) chcielibyśmy, aby były one oznaczone datą. Jeśli program nie ma własnych opcji lub znaczników pozwalających na dodanie daty lub czasu do nazwy pliku możemy spróbować użyć zmiennych systemowych %DATE% i %TIME%.
Ostatnio konfigurowałem zadanie automatycznej kopii zapasowej w kliencie poczty The Bat firmy RitlLabs. Do tej pory robiłem kopie ręcznie, ale chciałem w końcu skonfigurować program tak, aby robił je bez mojego udziału. Problem pojawił się przy nazwie pliku archiwum, w którym miałaby być trzymana poczta. Do tej pory każdy mój plik kopii miał format „poczta-thebat-ROK-MIESIĄC-DZIEŃ.tbk”. Chciałem, aby automatyczne kopie zachowały takie nazewnictwo.
Niestety The Bat zdaje się nie mieć własnych znaczników daty i czasu. Konieczne staje się użycie w nazwie pliku zmiennej systemowej %DATE%. Zmienna przyjmuje jednak wartość zgodną z ustawieniami regionalnymi. Mój plik archiwum „poczta-thebat-%DATE%.tbk” przyjmuje nazwę „poczta-thebat-17 kwietnia 2011.tbk”, a nie o to mi chodzi.
W końcu trafiłem na rozwiązanie. „poczta-thebat-%DATE(yyyy-MM-dd)%.tbk”
Po nazwie zmiennej (ale jeszcze przed znakiem procenta) w okrągłych nawiasach możemy podać format w jakim ma być wstawiona data. Polecenie %DATE(yyyy-MM-dd)% nie działa z linii poleceń, ale po wpisaniu w aplikację The Bat jako nazwa pliku archiwum działa idealnie. Moje archiwa mają teraz nazwy „poczta-thebat-2011-04-17.tbk”, czyli zgodne z moim widzimisię.
Nie udało mi się jeszcze ustalić czy to opcja systemu pozwalająca na formatowanie zmiennej środowiskowej %DATE%, czy inteligencja The Bat (której śladów w helpie nie znalazłem). Być może taki sposób formatowania %DATE% i %TIME% działa także w innych aplikacjach przetwarzających zmienne środowiskowe w nazwach plików (spotkałem aplikacje do backupów, które – o dziwo – nie przetwarzają tych zmiennych podanych w nazwie pliku – bezsens). Trzeba po prostu sprawdzić na własnej skórze… tzn. na własnej aplikacji.
Inspiracją do spróbowania tego tricka była ta strona.