Обновление: теперь, когда наступил 2016 год, я бы использовал PowerShell для этого, если только для этого нет действительно убедительной обратной совместимости, особенно из-за проблемы региональных настроек при использовании date
. Смотрите @ npocmaka's https://stackoverflow.com/a/19799236/8479
Какие операторы командной строки Windows я могу использовать для получения текущей даты и времени в формате, который я могу поместить в имя файла?
Я хочу получить файл .bat, который заархивирует каталог в архив с текущей датой и временем в качестве части имени, например, Code_2008-10-14_2257.zip
. Есть ли простой способ сделать это независимо от региональных настроек машины?
Я действительно не против формата даты, в идеале это будет гггг-мм-дд, но все, что угодно, просто отлично.
Пока у меня есть это, которое на моей машине дает мне 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
Я могу жить с этим, но это кажется немного неуклюжим. В идеале это было бы более коротким и имело формат, упомянутый ранее.
Я использую Windows Server 2003 и Windows XP Professional. Я не хочу устанавливать дополнительные утилиты для этого (хотя я понимаю, что есть некоторые, которые будут делать хорошее форматирование даты).