Когда я пишу, что сценарий Python для выполнения Devenv с настраивает “Debug|Win32”, он ничего не делает

Новая строка зависит от вашей ОС:

DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13

Подробнее здесь: https://ccrma.stanford.edu/~craig/utility/flip/

Если сомневаетесь, воспользуйтесь любой бесплатной программой просмотра / редактирования в шестнадцатеричном формате, чтобы увидеть, как файл кодирует новую строку.

Для себя я использую следующее руководство, чтобы помочь мне запомнить: 0D0A = \ r \ n = CR, LF = ca rr iage r eturn, li n Электронная подача

6
задан dbr 5 July 2009 в 18:55
поделиться

4 ответа

Когда shell = Если используется значение false , строка будет рассматриваться как отдельная команда, поэтому вам нужно передать команду / arugments в виде списка .. Примерно так:

from subprocess import Popen, PIPE

cmd = [
    r"C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv", # in raw r"blah" string, you don't need to escape backslashes
    "solution.sln",
    "/build",
    "Debug|Win32"
]

p = Popen(cmd, stdout=PIPE, stderr=PIPE)
out = p.stdout.read() # reads full output into string, including line breaks

print out
0
ответ дан 17 December 2019 в 02:32
поделиться

попробуйте использовать двойные кавычки, например: 'devenv A.sln / build "Debug | Win32"'

0
ответ дан 17 December 2019 в 02:32
поделиться

Похоже, оболочка Windows принимает этот | как канал (несмотря на кавычки и экранирование). Вы пробовали вместо этого shell = False ?

0
ответ дан 17 December 2019 в 02:32
поделиться

Существует разница между devenv.exe и devenv.com , оба из которых являются исполняемыми и находятся в одном каталоге (вздох). Командные строки, использованные в вопросе, и некоторые ответы не говорят, что они хотят, поэтому я не уверен, какие из них будут использованы.

Если вы хотите позвонить из командной строки, вам необходимо убедиться, что вы используете devenv.com , иначе вы, скорее всего, получите всплывающий графический интерфейс. Я думаю, что это может быть причиной некоторых (но не всех) путаницы.

5
ответ дан 17 December 2019 в 02:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: