Как я могу вывести день недели и месяц в пакетном режиме (файлы журнала)?

StackOverflow https://stackoverflow.com/questions/4121202

  •  29-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь настроить 7zip для автоматического резервного копирования, но у меня возникли проблемы с именами выходных файлов.

Я попытался использовать команду %date%, но она просто создала 2 каталога в моей резервной копии.

C:\Users\Desktop\Sun 11\07\2010.7z

Как я могу сделать так, чтобы он просто регистрировал день и месяц?

C:\Users\Desktop\Sun 11-07-2010.7з

Это было полезно?

Решение

Попробуй

7z a %DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%.7z *.*     for (YYYY-MM-DD)

или

7z a %DATE:~7,2%-%DATE:~4,2%-%DATE:~-4%.7z *.*     for (DD-MM-YYYY)

(*.* - это маска для файлов для резервного копирования)

Другие советы

Вы используете bat-файл?Посмотри сюда http://www.tech-recipes.com/rx/956/windows-batch-file-bat-to-get-current-date-in-mmddyyyy-format/

Вы можете использовать WMI для получения сведений о вашей дате в определенном формате.Проблема с выводом из date (и тот %date% переменная окружения) заключается в том, что она очень зависит от локали.

Если вы выполните:

wmic path win32_localtime get day^,month^,year^ /format:csv

вы увидите результат, который вам нужно обработать.

Следующий скрипт предоставит вам yyyy-mm-dd формат, который вам нужен (использование дня недели в качестве основного ключа сортировки - не очень хорошая идея):

@echo off
for /f "skip=2, tokens=2-4" delims=," %%a in ('wmic path win32_localtime get day^,month^,year^ /format:csv') do (
    set /a ymd = 10000 * %%c + 100 * %%b + %%a
)
set ymd=%ymd:~0,4%-%ymd:~4,2%%ymd:~6,2%
echo %ymd%
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top