Jak uzyskać bieżącą datę i godzinę w wierszu poleceń systemu Windows, w odpowiednim formacie do użycia w nazwie pliku?

Aktualizacja: Teraz, kiedy jest rok 2016, użyję do tego PowerShell, chyba że istnieje naprawdę przekonujący powód zgodny z poprzednimi wersjami, szczególnie ze względu na problem z ustawieniami regionalnymi przy korzystaniu zdate. Zobacz @ npocmaka'shttps://stackoverflow.com/a/19799236/8479

Co to jest instrukcja (-y) wiersza poleceń systemu Windows, której mogę użyć, aby uzyskać bieżącą datę i godzinę w formacie, który mogę umieścić w nazwie pliku?

Chcę mieć plik .bat, który zapina katalog w archiwum z aktualną datą i czasem jako częścią nazwy, na przykład,Code_2008-10-14_2257.zip. Czy mogę to zrobić w prosty sposób, niezależnie od ustawień regionalnych maszyny?

Nie mam nic przeciwko formatowi daty, najlepiej, że będzie to rrrr-mm-dd, ale wszystko jest w porządku.

Do tej pory mam to, co na mojej maszynie mi dajeTue_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. Najlepiej byłoby być krótszym 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 istnieją takie, które będą ładnie formatować datę).

questionAnswers(27)

yourAnswerToTheQuestion