Форматирование значений реестра с нестандартным синтаксисом аргументов для команд контекстного меню

Форматирование значений реестра с нестандартным синтаксисом аргументов для команд контекстного меню

Я пытаюсь добавить запись в контекстное меню фона папки Windows. Следующее значение "command" работает:

"P:\Projects\GuardianBlade\OfStrangerFlames\Development\Project\Bin\MakeManifest.exe"

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

Однако я хотел бы сделать следующее:

"P:\Projects\GuardianBlade\OfStrangerFlames\Development\Project\Bin\MakeManifest.exe" -root="%1"

Но это не работает. И это тоже не работает:

"P:\Projects\GuardianBlade\OfStrangerFlames\Development\Project\Bin\MakeManifest.exe" "-root=%1"

Моя цель — запустить программу MakeManifest.exe и получитьодинаргумент командной строки в формате:

-root="the/directory/right-clicked/in/"

Я хочу, чтобы кавычки вокруг пути к каталогу, передаваемые в MakeManifest, были сохранены, и я хочу, чтобы все это было (-root="каталог/по которому/щелкнули/правой/мышью/") быть одним аргументом.

Если это невозможно, я бы согласился на-кореньпередано как один аргумент, и/каталог/путь(без кавычек, но как один аргумент) передано как второй аргумент. Я не могу заставить работать ни один из них.

Все мои попытки приводят к следующему сообщению об ошибке: введите описание изображения здесь

"Этот файл не имеет программы, связанной с ним для выполнения этого действия. Установите программу или, если она уже установлена, создайте ассоциацию в панели управления программами по умолчанию."

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

Опять же, установка команды без аргументов работает нормально.

Как мне это сделать?

решение1

Используйте %Vвместо %1.

Дополнительную информацию о переменных команд оболочки, таких как %V и %1, см.этот вопрос.

Связанный контент