destiny child
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору lyolik r из файла DEFAULT.BAR: button56=C:\Windows\System32\cmd.exe cmd56=cmd.exe param56=/K ""d:\Downloads\для тестов\qpdf\bin\qpdf.exe" --show-encryption %P%N" т.к. у командного процессора есть тупое правило: Если указаны ключи /C или /K, то остальная часть командной строки после такого ключа обрабатывается как командная строка, а обработка символов кавычек (") ведется по следующим правилам: 1. Если выполняются все перечисленные ниже условия, то символы кавычек в командной строке сохраняются: - ключ /S отсутствует - есть ровно два символа кавычек - между ними нет других специальных символов, как то: &<>()@^| - между ними имеются один или несколько пробелов - строка, заключенная в кавычки, является именем исполнимого файла. 2. В противном случае, проверяется первый символ, и если он является символом кавычек, то он удаляется, также удаляется последний символ кавычек в командной строке, а весь текст после этого последнего символа кавычек сохраняется. Как мы понимаем, п.1 нам не подходит, т.к. мы создаем навороченную команду вызова))) а для п.2 надо чтобы выполнялось условие наличия "лишних" по сути кавычек, которые обработчик cmd в соответствии с правилом п.2 удалит, а остальное пустит на обработку, что нам по сути и требуется. Поэтому ВСЮ по сути простейшую команду мы оборачиваем "лишними" кавычками "на убой". Для параметров %P%N кавычки не нужны. Тотал сам их там подставляет, если нужно будет. |