Aktualizacja: teraz, gdy jest 2016, użyłbym do tego PowerShell, chyba że istnieje naprawdę interesujący powód kompatybilności wstecznej, szczególnie z powodu problemów z ustawieniami regionalnymi podczas używania date
. Zobacz @ npocmaka na https://stackoverflow.com/a/19799236/8479
Jakich instrukcji wiersza polecenia systemu Windows można użyć, aby uzyskać bieżącą datę i godzinę w formacie, który można umieścić w nazwie pliku?
Chcę mieć plik .bat, który zamyka katalog do archiwum z bieżącą datą i godziną jako częścią nazwy, na przykład Code_2008-10-14_2257.zip
. Czy jest jakiś prosty sposób, niezależnie od regionalnych ustawień urządzenia?
Nie mam nic przeciwko formatowi daty, idealnie byłoby to rrrr-mm-dd, ale wszystko, co proste, jest w porządku.
Do tej pory mam to, co na mojej maszynie daje mi Tue_10_14_2008_230050_91
:
rem Get the datetime in a format that can go in a filename.
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
rem Now use the timestamp by in a new ZIP file name.
"d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code
Mogę z tym żyć, ale wydaje się to trochę niezgrabne. Idealnie byłoby krótsze i mieć wspomniany wcześniej format.
Używam Windows Server 2003 i Windows XP Professional. Nie chcę instalować dodatkowych narzędzi, aby to osiągnąć (chociaż zdaję sobie sprawę, że są takie, które będą ładnie formatować daty).
[datetime]::now.tostring("yyyy-MM-dd")