Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Аргументы %P и %T и пути с пробелами 
Author Message
x-code



PostPosted: Sat Nov 23, 2024 18:55    Post subject: Аргументы %P и %T и пути с пробелами Reply with quote

Добрый день!
Хочу добавить на панель инструментов некую кнопку с программой, которая принимает два аргумента - текущий путь одной панели и текущий путь другой панели. Вроде все просто, прописываю ей в аргументы %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"
добавление кавычек в различных сочетаниях не помогает и приводит к другим странным результатам.
Что делать?
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group