Если вам часто приходиться создать папки, в названии которых отражена текущая дата в формате ГГГГ-ММ-ДД, то можно автоматизировать создание таких папок.
Например, сегодня 24 сентября 2013 года, соответственно папка будет называться
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
012
3456789
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. Согласившись с выполнением скрипта, будет удален раздел в реестре, отвечающий за наш пункт в контекстном меню.