Оновлення: Тепер, коли це 2016 рік, я б для цього використовував PowerShell, якщо для цього немає дійсно переконливої причини, сумісної з зворотним ходом, особливо через проблему використання регіональних налаштувань date
. Дивіться @ npocmaka's https://stackoverflow.com/a/19799236/8479
Що таке оперативні дані командного рядка Windows, за допомогою яких я можу отримати поточний час у форматі, який я можу вписати у ім’я файлу?
Я хочу мати файл .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. Я не хочу встановлювати додаткові утиліти, щоб досягти цього (хоча я усвідомлюю, що є деякі, які будуть непогано форматувати дату).
[datetime]::now.tostring("yyyy-MM-dd")