質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

2866閲覧

Python subprocessでWindowsのコマンド実行

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/08/09 08:26

PythonからWindowsのコマンドを実行したいため、subprocessを使い以下のコードを書きましたが、
以下のメッセージが表示されてしまいます。解決策をご存じの方ご教示下さい。

エラー

'"netsh wlan show interface"' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

python

1import subprocess 2 3proc = subprocess.run(["netsh wlan show interface"],shell=True, stdout = subprocess.PIPE) 4for line in proc.stdout: 5 print(line)

netsh wlan show interface を hostname コマンドに置き換えたらPCのコンピューター名が表示
されたので、文法には誤りがないようです。

python

1proc = subprocess.run(["hostname"],shell=True, stdout = subprocess.PIPE) 2print(proc.stdout.decode("utf8"))

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Python

1proc = subprocess.run("netsh wlan show interface",shell=True, stdout = subprocess.PIPE)

ですね。subprocess.runの第一引数が文字列の時とリストの時の意味の違いを調べましょう。

また、バイト列に対してforを行うと、1バイトずつに分解しますけど、それは多分意図と違うでしょう。
とりあえず表示するだけなら、

Python

1print(proc.stdout.decode("cp932"))

投稿2021/08/09 08:53

otn

総合スコア84557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

shell=True の時は、リストではなく文字列を渡せます。
リストで渡す場合は、引数がエスケープ処理されたりする為、
意図したコマンドが実行されてない可能性があります。

  • shell=True の時、 subprocess.run("netsh wlan show interface", shell=True)
  • shell=False の時、subprocess.run(["netsh", "wlan", "show", "interface"])

注意: shell=True を使う前に セキュリティで考慮すべき点を読んでください。

投稿2021/08/09 08:47

teamikl

総合スコア8664

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問