Hướng dẫn batch file run multiple python scripts - tệp hàng loạt chạy nhiều tập lệnh python

Tôi đang cố gắng lên lịch chạy nhiều trăn bằng tệp hàng loạt.

Ví dụ: có các tệp python của tôi mà tôi muốn lên lịch chạy chúng hàng ngày

D:\py\s1.py
D:\py\s2.py

Bây giờ làm thế nào tôi có thể kết hợp hai tệp này thành một .bat, để tôi có thể lên lịch chạy hai tệp này bằng cách sử dụng python.exe [C:\python27\python.exe] cùng một lúc.

Cảm ơn bạn

Bali c

29,8K35 Huy hiệu vàng120 Huy hiệu bạc151 Huy hiệu đồng35 gold badges120 silver badges151 bronze badges

Hỏi ngày 14 tháng 12 năm 2012 lúc 14:30Dec 14, 2012 at 14:30

1

Phương pháp 1: Tệp dơi.: Bat file.

Nếu bạn có Python trong biến môi trường đường dẫn:

start python D:\py\s1.py
start python D:\py\s2.py

Đường khác theo nghĩa đen

start C:\python27\python.exe D:\py\s1.py
start C:\python27\python.exe D:\py\s2.py

Lưu ý rằng điều này sẽ không chờ đợi để trả lại từ một trong hai thực thi. Lưu ý, đừng quên thêm các trích dẫn xung quanh các chuỗi đường dẫn nếu chúng chứa khoảng trắng hoặc ký tự đặc biệt.

Xem start /? để biết thêm trợ giúp và tùy chọn.

Phương pháp 2: Hai nhiệm vụ theo lịch trình khác nhau: Two different Scheduled Tasks

Tạo hai nhiệm vụ theo lịch trình riêng biệt bắt đầu cùng một lúc mỗi lần gọi Python để chạy một trong các tập lệnh.

Đã trả lời ngày 14 tháng 12 năm 2012 lúc 14:39Dec 14, 2012 at 14:39

David Ruhmanndavid RuhmannDavid Ruhmann

10,8K2 Huy hiệu vàng35 Huy hiệu bạc47 Huy hiệu đồng2 gold badges35 silver badges47 bronze badges

0

  • Tất cả các cộng đồng
  • Ý tưởng ArcGIS
  • Cơ bản cộng đồng

  • Nhà
  • Tất cả các cộng đồng
  • Ý tưởng ArcGIS
  • Cơ bản cộng đồng
  • Nhà
  • Nhà phát triển

Python

  • Câu hỏi Python
  • Tệp .bat để chạy nhiều tập lệnh .py
  • Tùy chọn
  • Đăng ký nguồn cấp dữ liệu RSS
  • Đánh dấu chủ đề là mới
  • Đánh dấu chủ đề như đã đọc
  • Nổi chủ đề này cho người dùng hiện tại
  • Đánh dấu

Đặt mua

Tắt tiếng

Trang thân thiện với máy in

Tôi đang tìm kiếm thông tin về cách viết đúng tệp .bat sẽ chạy nhiều tập lệnh Python theo tuần tự.

Nếu một trong những tập lệnh đó không thành công thì tôi cần quá trình dừng lại.
start /wait D://PythonScripts/Script1
start /wait D://PythonScripts/Script2
start /wait D://PythonScripts/Script3
start /wait D://PythonScripts/Script4

  • Nhưng tôi cần sau đó để chạy theo trình tự và đợi trước khi bắt đầu tiếp theo.
  • Tôi nghĩ rằng điều này là gần nhưng không có gì trong đó phá thai nếu thất bại.
  • @echo tắt/chờ & nbsp; d: // pythonscripts/script1start/wait & nbsp; d: // pythonscripts/script2start/wait & nbsp;

Tất cả những bài viết

Tôi tạo một danh sách để lưu trữ các lỗi trong gần bắt đầu tập lệnh Python

Errlist = []

Trong phần ngoại trừ của các tập lệnh Python của bạn [bẫy lỗi], bạn cần đặt mã sau để bẫy các thông báo lỗi và ghi chúng vào tệp nhật ký:

Ngoại trừ ngoại lệ là E:

   ErrList.append[e.message]

& nbsp; & nbsp; & nbsp; faillog = open ["đường dẫn đến tệp nhật ký"/faillogfile, 'w'];

& nbsp; & nbsp; & nbsp; faillog.write ["Các lỗi sau đây đã gặp phải:"]

   FailLog.write[ErrList[0]]FailLog.write[ErrList[0]]

   FailLog.close[]

Trong tệp BAT, tôi kiểm tra sự tồn tại của tệp faillog theo tên khi tôi đổi tên nhật ký thất bại trước đó ở đầu tệp BAT để đảm bảo không có tệp faillog nào bằng tên cụ thể đó tồn tại khi bắt đầu các cuộc gọi đến các tập lệnh Python.

Nếu tồn tại Faillog [Goto: Bail]

Bạn có thể có thể đơn giản hóa phần này và chỉ có if & nbsp; tồn tại faillog [goto: exit]

:EXIT

9 câu trả lời

Có vẻ như bạn có thể làm một cái gì đó với sys.exit [] hoặc exit [] để trả về không phải là dấu nhắc lệnh, [mã thoát 1], sau đó thêm một số logic trong .bat để kiểm tra mã thoát ..

BAT có thể xử lý điều này bằng cách sử dụng thực thi có điều kiện shell, mà không cần vụng về nếu các câu lệnh trên %errorLevel %.

&& có nghĩa là thực thi lệnh tiếp theo miễn là không có lỗi nào được trả về từ công cụ chạy trước đó. PS có một toán tử tương tự "-and"

@echo off 
pushd D:\PythonScripts
Script1.py && Script2.py && Script3.py && Script4.py‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Các tập tin hàng loạt - Thực thi có điều kiện & NBSP;

Cú pháp - Tôi có thể nhận được && để làm việc trong PowerShell không? - Stack Overflow & NBSP;

Điều này yêu cầu tập lệnh python của bạn sẽ trả lại điều kiện lỗi cho shell, điều này sẽ xảy ra nếu Python không bị hỏng, nhưng nếu bạn đang cố gắng/ngoại trừ bạn sẽ phải để tập lệnh của mình với sys.exit [1] để trả về Một điều kiện lỗi đối với vỏ [sys.exit [] sẽ không làm điều đó, bạn cần cung cấp 1].

Trong tệp BAT của tổ chức của tôi, chúng tôi kiểm tra sự tồn tại của nhật ký thất bại được tạo trong bất kỳ tập lệnh Python nào là một phần của tệp BAT. & nbsp; Nếu nhật ký thất bại tồn tại [nó được đổi tên vào đầu mỗi lần chạy] tại bất kỳ điểm nào giữa các cuộc gọi Python, thì tệp BAT thoát ra một cách duyên dáng mà không chạy phần còn lại của các tập lệnh Python.

Vì vậy, bạn sẽ cần phải ghi vào một nhật ký lỗi trong mã python của bạn và sau đó kiểm tra tệp này trong tệp bat của bạn

Nếu tồn tại thất bại.log [goto: bail] khác echo fail.log không tìm thấy

:BAIL

Goto: Thoát

:EXIT

Nếu tôi chạy như dưới đây sẽ hoạt động? & nbsp; chỉ không có sự thất bại an toàn về việc một trong những tập lệnh có thất bại hay không?

@echo tắt/chờ & nbsp; d: // pythonscripts/script1start/wait & nbsp; d: // pythonscripts/script2start/wait & nbsp;
start /wait D://PythonScripts/Script1
start /wait D://PythonScripts/Script2
start /wait D://PythonScripts/Script3
start /wait D://PythonScripts/Script4

Với tệp BAT hiện tại của bạn, không có cách nào để nó ngừng chạy tập lệnh liên tiếp & nbsp; python nếu nó thất bại trên tập lệnh Python hiện tại vì nó sẽ chỉ thoát khỏi tập lệnh Python hiện tại với lỗi và chuyển sang tập lệnh Python tiếp theo. & nbsp; bạn cần nói rõ ràng cho tệp BAT không chạy liên tiếp & nbsp; python script nếu tập lệnh hiện tại không thành công và đó là những gì mà nhật ký thất bại dành cho.

Bây giờ nếu các tập lệnh Python không phụ thuộc vào nhau để làm việc đúng, thì thiết lập hiện tại của bạn có thể hoạt động.

Trong kịch bản của tôi, các tập lệnh Python phụ thuộc vào nhau, vì vậy nếu 1 tập lệnh Python thất bại, tôi không muốn chạy các tập lệnh liên tiếp.

Phải, phần đó tôi hiểu ... chỉ muốn xác nhận ... sẽ chỉ cho bài kiểm tra này ... và thêm thất bại & nbsp; an toàn vào một ngày khác.

Cảm ơn những suy nghĩ của bạn.

Bất kỳ ví dụ về mã để thực hiện thử nghiệm? & nbsp; Tạo tệp nhật ký và sau đó kiểm tra nếu nó tồn tại? & nbsp; Tôi giả sử tôi làm điều này trong tập lệnh Python và không có trong tệp Bat.

Tôi tạo một danh sách để lưu trữ các lỗi trong gần bắt đầu tập lệnh Python

Errlist = []

Trong phần ngoại trừ của các tập lệnh Python của bạn [bẫy lỗi], bạn cần đặt mã sau để bẫy các thông báo lỗi và ghi chúng vào tệp nhật ký:

Ngoại trừ ngoại lệ là E:

   ErrList.append[e.message]

& nbsp; & nbsp; & nbsp; faillog = open ["đường dẫn đến tệp nhật ký"/faillogfile, 'w'];

& nbsp; & nbsp; & nbsp; faillog.write ["Các lỗi sau đây đã gặp phải:"]

   FailLog.write[ErrList[0]]FailLog.write[ErrList[0]]

   FailLog.close[]

Trong tệp BAT, tôi kiểm tra sự tồn tại của tệp faillog theo tên khi tôi đổi tên nhật ký thất bại trước đó ở đầu tệp BAT để đảm bảo không có tệp faillog nào bằng tên cụ thể đó tồn tại khi bắt đầu các cuộc gọi đến các tập lệnh Python.

Nếu tồn tại Faillog [Goto: Bail]

Bạn có thể có thể đơn giản hóa phần này và chỉ có if & nbsp; tồn tại faillog [goto: exit]

:EXIT

Hello,

Tôi đang tìm cách làm một cái gì đó rất giống nhau ở đây. Tôi có 6 tập lệnh riêng lẻ mà tôi muốn có một tệp .bat khởi động. Tuy nhiên, tệp .bat hiện tại của tôi chỉ thực thi tập lệnh đầu tiên chứ không phải các tập lệnh khác. Các tập lệnh không phụ thuộc vào nhau, nhưng thật tuyệt khi ghi lại bất kỳ tập lệnh nào thất bại.

Đây là những gì tôi có trong tệp .bat của tôi:

Xin chào, & nbsp; Jaykapalczynski có suy nghĩ nào về điều này không? Tự hỏi nếu bạn tìm thấy một giải pháp làm việc cho bài viết gốc của bạn? Cảm ơn!jaykapalczynski any thoughts on this? Wondering if you found a solution that worked for your original post? Thanks!

  • Jaykapalczynski

  • Điều khoản sử dụng
  • Hướng dẫn cộng đồng
  • Cơ bản cộng đồng
  • Sự riêng tư
  • Trung tâm Tin tưởng
  • Hợp pháp
  • Liên hệ với ESRI

Làm cách nào để chạy nhiều tập lệnh python cùng một lúc?

Sử dụng thiết bị đầu cuối - Đây là cách đơn giản nhất để làm điều đó. Bạn thực hiện bất kỳ tập lệnh Python nào như là $ Python a.py. Bây giờ, nếu bạn muốn có nhiều tập lệnh, bạn có thể mở ra nhiều thiết bị đầu cuối và chạy các chương trình khác nhau trên mỗi hoặc, trong cùng một thiết bị đầu cuối $ Python a.py & b.py & c.py. Điều này sẽ thực hiện tất cả các chương trình từ cùng một thiết bị đầu cuối.open up multiple terminals and run diffent programs on each or, in the same terminal “$ python a.py&b.py&c.py” . This will execute all programs from the same terminal.

Làm cách nào để chạy nhiều tệp hàng loạt trong Python?

Cách chạy nhiều tập tin hàng loạt từ một tệp hàng loạt..
@echo tắt ..
Gọi Batch1.con dơi..
Gọi Batch2.con dơi..
Gọi Batch3.con dơi..

Bạn có thể chạy nhiều tập lệnh Python cùng một lúc không?

Với Pycharm, bạn có thể chạy toàn bộ các ứng dụng cũng như các tập lệnh cụ thể.you can run entire applications as well as particular scripts.

Làm cách nào để chạy tập lệnh Python từ một tập tin hàng loạt?

Các bước để tạo một tập tin hàng loạt để chạy tập lệnh Python..
Bước 1: Tạo tập lệnh Python.Để bắt đầu, hãy tạo tập lệnh Python của bạn.....
Bước 2: Lưu tập lệnh của bạn.Lưu tập lệnh Python của bạn [tập lệnh Python của bạn sẽ có phần mở rộng của '. ....
Bước 3: Tạo tệp Batch để chạy tập lệnh Python.....
Bước 4: Chạy tệp hàng loạt ..

Bài Viết Liên Quan

Chủ Đề