Как вывести выходной день и месяц в пакетном режиме (файлы журналов)? - PullRequest
0 голосов
/ 08 ноября 2010

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

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

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

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

C: \ Users \ Desktop \ Sun11-07-2010.7z

Ответы [ 3 ]

1 голос
/ 08 ноября 2010

Попробуйте

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)

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

0 голосов
/ 08 ноября 2010

Вы можете использовать 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%
0 голосов
/ 08 ноября 2010
...