時分の書いたものをpythonスクリプトを実行Devenvと設定を"デバッグ|Win32"何もしません

StackOverflow https://stackoverflow.com/questions/1049784

  •  20-08-2019
  •  | 
  •  

質問

更新: を利用した場合 subprocess.call の代わりに subprocess.Popen, の問題が解決さは誰も知らその原因は?あった別の問題:ないのですが見をどのように制御すべきかという出...があるので、リダイレクト出力から subprocess.call 文字列またはいそうですよね。よろしく!

私は利用しよう Devenv 構築プロジェクトでは、イブレア城、イブレア大きいタイプでコマンドプロンプトのような devenv A.sln /build "Debug|Win32" がご利用する場合は、pythonで使用 Popen(cmd,shell=true) 場所 cmd は同一回線上ではない。場合を削除しま |, 変更する "Debug" のみを動作させることができ....

は誰もがなぜそうなことが起きているのでしょうか。私たけ \|, でも何事もなかったかのように..

このコードを使用してい:

from subprocess import Popen, PIPE

cmd = ' "C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\IDE\\devenv" solution.sln /build "Debug|Win32" '

sys.stdout.flush()
p = Popen(cmd,shell=True,stdout=PIPE,stderr=PIPE)
lines = []
for line in p.stdout.readlines():
    lines.append(line)
out = string.join(lines)
print out
if out.strip():
    print out.strip('\n')
    sys.stdout.flush()

る---なしるばかりのスワップ Debug|Win32Debug, でコンビニエンスストアでのお..

コからのコメントこちら

役に立ちましたか?

解決

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

他のヒント

の間には大きな違いがあり devenv.exedevenv.com, の実行形式やライブと同じディレクトリ(嘆息)。のコマンドラインに用いる質問とその答えはないと思っていんずることができます。

したい場合は呼び、コマンドラインからそれることを確保するために必要な利用 devenv.com, れんしそうなGUI吹出します。が考えられる原因の全部ではない)の混乱した。

参照17.1.5.1.は、pythonドキュメント.

Windowsでは、Python自動的に追加しますダブルクォート、プロジェクト設定の引数ん。eデバッグ|win32て"デバッグ|win32"のdevenv.必要な追加のダブルクォートなどの通シェル=TrueをPopen.

利用ProcMonに渡される引数文字列devenv.

い二重引用など:'devenv A.sln/build"デバッグ|Win32"'

ようになWindowsシェルを取り入れることにより | としてパイプのものを引用し、エスケープ).してください shell=False ょうか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top