Обновление: теперь, когда в 2016 году я буду использовать PowerShell для этого, если у него нет убедительной обратной совместимости, особенно из-за проблем с региональными настройками с использованием date
. См. @npocmaka qaru.site/info/16145/...
Какие операторы командной строки Windows, которые я могу использовать для получения текущего datetime в формате, который можно поместить в имя файла?
Я хочу иметь файл .bat, который застегивает каталог в архив с текущей датой и временем как часть имени, например Code_2008-10-14_2257.zip
. Есть ли какой-либо простой способ сделать это, независимо от региональных настроек машины?
На самом деле я не возражаю против формата даты, в идеале это будет yyyy-mm-dd, но все простое в порядке.
Пока у меня это есть, что на моей машине дает мне 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. Я не хочу устанавливать дополнительные утилиты для достижения этого (хотя я понимаю, что есть некоторые, которые будут делать красивое форматирование даты).