Столкнулся с неприятной ситуацией с тихой установкой какой-то программы. Я не уверен, что они используют какое-либо соглашение для флагов установки со значениями, но вот что следует использовать для установки:
"path with spaces\setup.exe" -uninst -s -f2"path with spaces\uninstall.log"
вы не можете использовать --f2 = "путь с пробелами \ uninstall.log" или - f2 = "путь с пробелами \ uninstall.log" или -f2 "путь с пробелами \ uninstall.log"
поэтому, если я использую в Python следующую команду:
command = [self.setup_exe, '-uninst', '-s', fr'-f2"{uninstall_log_file}"']
, подпроцесс выполняется (получить из subprocess.list2cmdline (command) ):
setup.exe" -uninst -s -f2\"some path\temp build 12\uninstall.log\"
в основном появляются косые черты и установка не выполняется. Теоретически я могу создать свою собственную строку, но тот же поставщик для другого исполняемого файла предоставляет другой синтаксис, более совместимый с подпроцессом. Мне интересно, можно ли настроить список аргументов для удовлетворения требований установщика?