2016-12-14 8 views
1

私は、次のコマンドをしている:それは私が何をしたいのか<comp name> the entered computer name is not valid... talk to y our admin(53)の線に沿って出力何かが取得する私は、たとえば、コマンドのステータスコードを取得できますかシェル呼び出しのステータスコードを取得する方法は?

import subprocess 

proc = subprocess.Popen(["shutdown", "/m", r"\\<some comp name>", "/s", "/f"], stdout=subprocess.PIPE, shell=True) 

コンピュータが存在しない場合であるだろうコマンドの終了コードとそれが出力された場合yes出力されない場合no、どのようにしてコマンドのステータスコードを取得できますか?

答えて

2

簡単な方法、ボーナスリダイレクトなどで/(エラーの場合は、多くの場合、興味深い)標準エラー出力をマージ:

proc = subprocess.Popen(["shutdown", "/m", r"\\<some comp name>", "/s", "/f"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 
output = proc.stdout.read() 
return_code = proc.wait() 

は(あなたがしているので、私は役に立たないshell=Trueオプションを、除去したことに注意してください)可能な場合はそのようにそれを維持、あなたのコマンドでシェルの機能を使用していない

編集:答える前に、しばらくの間、重複をチェックしますが、Popenhttps://stackoverflow.com/search?q=subprocess+get+output+return+code

を使用して完全一致/簡単な例を見つけることができませんでした
関連する問題