Автоматическое создание папок из контекстного меню

Андрей Викторов

Топикстартер
10 лет на форуме
Сообщения
598
Оценка реакций
169
Коллеги, приветствую!
Надеюсь, что кто-нибудь сможет подсказать решение.
Надо: Находясь в проводнике по правой кнопке из меню выбрав команду
«Создать папки» после чего в текущей папке создаются три с заранее определенными именами.
Батник накалякать не проблема. Пункт в контекстное меню тоже разобрался где и как добавлять.
Папки однако создаются лишь там, где сам батник лежит. А как заставить, чтобы в текущем каталоге он это делал?
 

George

I wish I was a monster you think I am
12 лет на форуме
Сообщения
13 530
Оценка реакций
6 476

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
22 494
Оценка реакций
7 869
Если на файле в проводнике кликаете то его и передавайте в батч
А там путь от имени отрезайте и используйте
 

Андрей Викторов

Топикстартер
10 лет на форуме
Сообщения
598
Оценка реакций
169
Извините, что потревожил. Понял где ошибка была только что.

Поясню, чего добивался:
По работе нужно на рабочем диске создавать папку с номером заказа.
Дальше в ней создавать еще три (для исходников, для обработанных исходников и для спусков).
Добивался, чтобы в проводнике, находясь в папке с № заказа, вызвав контекстное меню, выбрать пункт
«Создать папки» (его можно как угодно назвать) создавалось три новых папки с определенными именами.

Если кому надо что-то подобное, вот рецепт:
1. Написать батник
@echo off
md 1
md 2
md 3

2. В реестре добавить запись
HKEY_CLASSES_ROOT\Directory\Background\shell\Cоздать рабочие папки\Command
В значении параметра указать путь к батнику.
В итоге получаем создание трех папок в один клик.
Screenshot_1.jpg
 

qsedftghk

фея
10 лет на форуме
Сообщения
1 418
Оценка реакций
719
Когда-то давно я что-то подобное себе мастерил, только не в батнике, а в .vbs (в нём более весёлые штучки можно делать)
Код сохраняется в файл "любое имя".vbs, а дальше точно такая же возня с реестром как и вышеприведенном посте. Создаёт папку в текущем местоположении, имя папки: либо текущая дата (по умолчанию), либо как сами назовёте, ну, и до кучи. сразу открывает созданную папку в проводнике и копирует её имя в буфер обмена, что, собственно и видно невооруженным глазом в коде =))
CSS:
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim fldr

one=date                                                'получаем текущую дату
one=Mid(one,1,2)&Mid(one,4,2)&Mid(one,9,2)                'удаляем точки и первые две цифры года

' наше название папки (текущая дата - по умолчанию)
result = InputBox("Как назовём папочку?","Создать папку",one)


if Not IsEmpty(result) then                                ' если не нажата отмена то делаем:
Set fldr=FSO.CreateFolder ("" & result)                    ' создаем папку с датой и нашим названием
WshShell.Run "Explorer " & """" & fldr & """"            ' открываем папку в проводнике
WshShell.Run "cmd.exe /c echo "&result&"| clip", 0, TRUE 'копируем в буфер название папки
End if
WScript.Quit                                            ' пути windows неисповедимы
Так.. Мало ли автор решит добавить чего в свой код, или кому-нибудь понадобится. И рекомендую в реестр писать название, как-нибудь его выделяя, например, черточками "--- Папка с текущей датой ---", так быстрее его глазом найти

ЗЫ. Кстати, один из плюсов vbs в том, что никакого echo off не нужно, ибо окно ком.строки не открывается. Можно такие приколюхи делать, гыгыгы, но это другая история...
 
Последнее редактирование: