【Python】bat(バッチ)を実行する方法

Pythonのスクリプト(py)もしくはPythonプロンプトから、Windowsのbat(バッチファイル)を実行する方法について説明します。

Windowsのbat(バッチファイル)からPythonのスクリプト(py)を実行する方法ではありません。

Pythonのほうが高級なスクリプト言語だから、Pythonからbatを実行しようなんてそんなことないだろうと思いつつ、意外とあるので、そのやり方を書きます。

確認環境

Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license()” for more information.
>>>

準備するもの

bat(バッチファイル)

今回は簡単なプログラムとして単純に「Hello,bat!」と出力するファイルを用意しました。それを、c:\test配下に格納します。

Pythonスクリプト or コマンド

今回は、Pythonプロンプトから実行してみました。

>>> import subprocess
>>> res = subprocess.run(["C:\\test\\hello.bat"], shell=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

上記のように、subprocess.run()にコマンドを渡してやればOK。

参考サイト:

subprocess – Subprocess management – Python 3.8.6rc1 documentation

Source code: Lib/subprocess.py The module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several older modules and functions: Information about how the module can be used to replace these modules and functions can be found in the following sections.

実行結果

>>> res.returncode
0
>>> res.stdout
b'\r\nC:\\Users\\bukidarts\\AppData\\Local\\Programs\\Python\\Python38>echo "Hello,bat!" \r\n"Hello,bat!"\r\n'
>>>

 

2 COMMENTS

sam

こんばんは。
一行目でsyntaxエラーがでるのですがご教示ねがえますでしょうか。

返信する
bukilog

sam様

こんばんは。

当記事はpython2系の頃に書いたものをそのまま引っ越したため、現在は動作しない?ようでした。
(当時の環境が作れない状況です。。)

python3系の環境を構築し、動作確認したので更新します。

返信する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です