前提・実現したいこと
Pythonのコードから.vbsファイルを実行したいです。
os.system()を使えば.vbsファイルを実行できるとの記事を見たのですが、それを使った場合は実行したファイルが終了するまで次のコードが動かないとのことなので、subprocfess.Popenを使って実行したいです。
ですが、そのためにどんなコードを書いたらできるのかがわかりません。
公式ドキュメント(https://docs.python.org/ja/3/library/subprocess.html#subprocess.run)
や、
こちらのフォーラム(https://stackoverflow.com/questions/19112944/executing-a-vbs-file-with-arguments-created-by-python)
を見てみたのですが、自分の理解不足なのか、.vbsファイルを実行する方法はわかりませんでした。
.vbsは.exeのような実行ファイルではないので、下記のコードのようにそのままファイルパスを書くだけではダメなのはわかるのですが、そこからどうすれば良いのかがわかりません。
どのようなコードを書き加えれば.vbsを実行できるようになるのか教えて下さい。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
subprocess.Popen(r"D:\Program Files\blender-2.91(MyConfig)\RunBlender\Not_open_cmd Run_Blender.vbs")
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
###追記
教えていただいたサンプルコードをコピペして実行してみたのですが、.vbsファイルは実行されませんでした、、、
import subprocess def main() -> None: subprocess.Popen(r'wscript "D:\Program Files\blender-2.91(MyConfig)\RunBlender\Not_open_cmd Run_Blender.vbs" ') if __name__ == '__main__': main()
###再追記
一度カレントディレクトリを移動してから.vbsファイルを実行することで、無事動くようになりました。
ありがとうございます。
import os import subprocess def main() -> None: os.chdir(r"D:\Program Files\blender-2.91(MyConfig)\RunBlender") subprocess.Popen('wscript "Not_open_cmd Run_Blender.vbs" ') if __name__ == '__main__': main()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/13 09:14 編集
2021/02/13 21:36
2021/02/14 03:59