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

"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 = "/directory/ clickeded / in /") было одним аргументом.

В противном случае я бы согласился на -root, переданный в качестве одного аргумента, а /directory/path (без кавычек, но в качестве одного аргумента), переданный в качестве второго аргумента. Я не могу заставить ни на работу.

Все мои попытки приводят к этому сообщению об ошибке:

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

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

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

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

1 ответ1

1

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

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

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