Monthly Archives: Сентябрь 2013

Быстрое создание папок в формате ГГГГ-ММ-ДД (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. Согласившись с выполнением скрипта, будет удален раздел в реестре, отвечающий за наш пункт в контекстном меню.