Я хочу запустить централизованно сохраненный пакетный файл из контекстного меню, вызываемого правой кнопкой мыши, но пакетный файл должен изменить свою относительную позицию (% ~ dp0), указав, где пользователь щелкнул правой кнопкой мыши, а не местоположение пакетного файла.

Так что в основном мне нужна эта последовательность для работы ...

1) Когда пользователь выбирает параметр в контекстном меню щелчка правой кнопкой мыши в проводнике, папка, в которой он находится, задается как переменная

2) Пакетный файл запускается и использует переменную местоположения, установленную на шаге 1 для выполняемой работы ...

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

Мысли? Будет ли PowerShell лучшим вариантом?

1 ответ1

0

Я понял....

1) Запись в реестре для настройки контекстной опции правой кнопкой мыши.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\Create Client Folders]
@="&Create Client Folders"
"Icon"="%SystemRoot%\\System32\\shell32.dll,71"

[HKEY_CLASSES_ROOT\Directory\Background\shell\Create Client Folders\command]
@="DRIVELETTER:\\FOLDER\\batch_file_name.bat \"%V\""
  1. В пакетном файле используйте% cd%, чтобы получить место для щелчка правой кнопкой мыши (это только при нажатии в открытом "пустом месте" папки ,,, а не на самой папке ... мой пример пакетного файла для создания папок на основе содержимого текстового файла ...

установить TheRoot =% cd%

для /F "токены = 1 delims =," %% d IN (DRIVELETTER:\FOLDER\TextFileName.txt) DO md "% TheRoot%\%% d"

Текстовый файл - это просто возвращаемый файл с разделителями с именами папок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .