Откройте командную строку в определенном месте, а затем запустите сценарий в этом месте с некоторыми аргументами командной строки, используя python. - PullRequest
0 голосов
/ 05 ноября 2018

Мне удалось открыть командную строку и изменить каталог в требуемом месте с помощью модуля подпроцесса, но я не смог передать дополнительные аргументы для запуска приложения вместе с некоторыми аргументами командной строки. Я новичок в модуле подпроцесса, поэтому я провел некоторый поиск по стеку и не смог найти желаемый результат.

Mycode:

import subprocess
path = r"C:/Users/Application_Folder"
p = subprocess.Popen(r"cmd.exe", cwd="C:/Project_Files", shell=True)

Желаемый выход:

Path: C:\Users\Application_folder\Application.exe
Need to open the cmd prompt in windows at the Application_folder location, 
run the Application.exe by passing some command line arguments, using python

1 Ответ

0 голосов
/ 05 ноября 2018

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

command_line = [r'C:\Users\Application_Folder\Application.exe', '/argument1', '/argument2']
p = subprocess.Popen(command_line, cwd=r'C:\Project_Files')

Несколько замечаний, которые нужно иметь в виду:

  • Вы не должны использовать shell=True. В этом нет необходимости - фактически это почти никогда не требуется - но это создает потенциальную угрозу безопасности.
  • Весь смысл строковых литералов (начиная с r' или r") заключается в изменении интерпретации символов обратной косой черты в строке. r'C:\Program Files' - это та же строка, что и "C:\\Program Files". Если ваша строка не имеет обратной косой черты, не используйте префикс r.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...