Быстрое создание папок в формате ГГГГ-ММ-ДД (YYYY-MM-DD)

Если вам часто приходиться создать папки, в названии которых отражена текущая дата в формате ГГГГ-ММ-ДД, то можно автоматизировать создание таких папок.
Например, сегодня 24 сентября 2013 года, соответственно папка будет называться 2013-09-24

2013-09-24

Для этого встроим в контекстное меню проводника свой пункт меню, назовем его «YYYY-MM-DD» (название можете придумать свое)
контекстное меню

Все это делается с помощью файлов реестра с расширением *.reg
Всего мы создадим два файла: первый файл будет встраивать пункт меню, а другой удалять этот пункт меню.
Готовые файлы можно скачать здесь

Ниже в статье идет подробное описание этих файлов и того, как это работает

Создайте файл yyyy_mm_dd install.reg
Скопируйте в него следующий текст:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\yyyy_mm_dd]
@="YYYY-MM-DD"

[HKEY_CLASSES_ROOT\Directory\Background\shell\yyyy_mm_dd\command]
@="cmd /v:on /c mkdir !date:~-4!-!date:~3,2!-!date:~0,2!"

Windows Registry Editor Version 5.00 — версия редактора реестра.
Раздел реестра HKEY_CLASSES_ROOT\Directory\Background\shell отвечает за контекстное меню проводника.
Следующий фрагмент создает пункт меню в контекстном меню

[HKEY_CLASSES_ROOT\Directory\Background\shell\yyyy_mm_dd]
@="YYYY-MM-DD"

Вот, что мы увидим, если заглянем в реестр:
название

Если вложить в созданный раздел yyyy_mm_dd раздел command — это позволит при выборе пункта контекстного меню выполнить команду, которая прописана в параметрах.
Следующий фрагмент создает подраздел command и прописывает в нем нашу команду для создания папки:

[HKEY_CLASSES_ROOT\Directory\Background\shell\yyyy_mm_dd\command]
@="cmd /v:on /c mkdir !date:~-4!-!date:~3,2!-!date:~0,2!"

команда

Теперь поподробнее о самой команде:

cmd /v:on /c mkdir !date:~-4!-!date:~3,2!-!date:~0,2!

cmd — вызываем интерпретатор командной строки c ключом «/v:on«, который разрешает использование переменных среды. Обычно к системным переменным можно обратиться так: %ИМЯ_ПЕРЕМЕННОЙ%, то в данным случае обращение к системной переменной будет в следующем виде: !ИМЯ_ПЕРЕМЕННОЙ!

Ключ «/c» — выполнение указанной команды с последующим закрытием командной строки
mkdir — команда создания папки, в качестве параметра передается название создаваемой папки.
Системная переменная %DATE% возвращает текущую дату.
Например, 24.09.2013.

На же нужно переобразовать дату в вид 2013-09-24.
Для этого нужно выделить части системной переменной и составить требуемое название папки.

!date:~-4! — берет из даты «24.09.2013» четыре последних символа, что соответствует году 2013

!date:~3,2! — берет из даты «24.09.2013» два символа начиная с третьей позиции, что соответствует месяцу 09.
Причем символы нумеруются с нуля:
24.09.2013
0123456789

date:~0,2 — берет из даты «24.09.2013» два символа начиная с нулевой позиции, что соотвествует дню 24
24.09.2013
0123456789

Далее через дефис выставляем фрагменты в нужной последовательности: !date:~-4!!date:~3,2!!date:~0,2!

Строит отметить, что если системная переменная %DATE% возвращает дату отличную от формата ДД.ММ.ГГГГ, то нужно будет переделать обработку дат

Готовый файл можно скачать здесь

Запустите файл yyyy_mm_dd install.reg, выйдет предупреждение, согласитесь с продолжением операции.
Как только скрипт отработает, вы можете в любой папке вызвать контекстное меню, в котором будет наш элемент меню «YYYY-MM-DD», по щелчку на котором будет создана новая папка по текущей дате.

Удаление пункта из контекстного меню
Создайте файл yyyy_mm_dd remove.reg
Скопируйте в него следующий текст:

Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\Directory\Background\shell\yyyy_mm_dd]

[-HKEY_CLASSES_ROOT\Directory\Background\shell\yyyy_mm_dd] — этой командой мы удаляем созданный нами ранее раздел HKEY_CLASSES_ROOT\Directory\Background\shell\yyyy_mm_dd. Дефис (-) перед названием раздела удаляет этот раздел. Готовый файл можно скачать здесь.
Запустите файл yyyy_mm_dd remove.reg. Согласившись с выполнением скрипта, будет удален раздел в реестре, отвечающий за наш пункт в контекстном меню.

3 комментария

  1. Михаил:

    Здравствуйте. Заинтересовала эта тема, только мне надо чтобы ещё часы-минуты-секунды добавлялись в название создаваемой папки! Не допишете команду?

  2. che100:

    2 дня гуглил по сабжу.
    Какого только говна не советуют установить в систему.
    Ваше решение простое и изящное.
    Спасибо.

  3. Виталий:

    Молодец, давно искал, огромное спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *