x-code
|
Posted: Sat Nov 23, 2024 18:55 Post subject: Аргументы %P и %T и пути с пробелами |
|
|
Добрый день!
Хочу добавить на панель инструментов некую кнопку с программой, которая принимает два аргумента - текущий путь одной панели и текущий путь другой панели. Вроде все просто, прописываю ей в аргументы %P %T
И это работает пока в путях не встречаются пробелы.
Как только пробелы встречаются - всё ломается. Коммандер по какой-то причине не оборачивает такие пути кавычками.
Попытка выставить кавычки вручную (написать "%P" "%T") также приводит к странным результатам. Открывающая кавычка просто выбрасывается, закрывающая остается. Для исследования этого вопроса я написал простейшую программу
Code: | int main(int argc, char **argv)
{
for (int i = 0; i < argc; i++)
printf("%d: %s\n", i, argv[i]);
getchar();
} |
если подать ей закавыченные аргументы вручную, например
test.exe "c:/my docs" "c:/test/my docs"
то механизмы формирования аргументов совершенно корректно разбивают строку на аргументы, убирают кавычки и выводится ровно то что и ожидается.
0: d:\src\testcmdline\testcmdline.exe
1: c:\my docs
2: c:\test\my docs
Однако если создать указанные директории на диске, войти в них коммандером и запустить программу через коммандер с аргументами %P %T, выдается нечто странное:
0: d:\src\testcmdline\testcmdline.exe
1: C:\my docs" C:\test\my
2: docs"
добавление кавычек в различных сочетаниях не помогает и приводит к другим странным результатам.
Что делать? |
|