2012-11-23 41 views
6

Trong kịch bản python của tôi:Python: Làm thế nào tôi có thể thực thi tệp bat trong cửa sổ cmd mới?

p = Popen('a.bat') 

Vấn đề là rằng sản lượng của tập tin batch được đưa vào cửa sổ giao diện điều khiển chính trong đó tôi thực hiện kịch bản python của tôi ... Tôi muốn đầu ra của tập tin batch để được được hiển thị trong cửa sổ bảng điều khiển mới. Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn.

Trả lời

7

Bạn có thể đặt CREATE_NEW_CONSOLE cờ. Ví dụ:

import subprocess 

p = subprocess.Popen('a.bat', creationflags=subprocess.CREATE_NEW_CONSOLE) 

Tài liệu liên quan đến shell=True không phù hợp với implementation. Nếu bạn chỉ định shell=True, chỉ đặt CREATE_NEW_CONSOLE nếu nền tảng là Win9x hoặc sử dụng vỏ COMMAND.COM 16 bit.

+0

Điều này mang lại những gì tôi mong đợi ... Cảm ơn. :) – sky

2

tôi đã không sử dụng python trước đây, vì vậy tôi không thể kiểm tra, nhưng điều này sẽ làm việc

p = Popen('cmd.exe /k start a.bat') 
+0

Xin lỗi, nhưng điều này sẽ không hoạt động. Nó cần thiết lập cờ tạo để báo cho 'CreateProcess' của Win32 tạo một giao diện điều khiển mới cho tiến trình thay vì kế thừa giao diện điều khiển hiện tại. – eryksun

Các vấn đề liên quan