Trong hướng dẫn này, bạn sẽ thấy các bước hoàn chỉnh để tạo tệp hàng loạt để chạy tập lệnh Python.
Nhưng trước khi chúng tôi bắt đầu, đây là mẫu tệp hàng loạt mà bạn có thể sử dụng để chạy tập lệnh Python của mình:
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause
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.
Ví dụ: hãy để tạo ra một tập lệnh Python đơn giản có chứa đếm ngược & nbsp; [Ngoài ra, bạn có thể sử dụng bất kỳ tập lệnh Python nào mà bạn muốn chạy]:
countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 1
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 ‘.py‘]..py‘].
Ví dụ của chúng tôi, hãy để Lừa lưu tập lệnh Python như: Đếm ngược lạicountdown
- Phần mở rộng tệp ở đâu .pypy.py
Bước 3: Tạo tệp Batch để chạy tập lệnh Python
Để tạo tệp hàng loạt, hãy mở Notepad và sau đó sử dụng mẫu sau:
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause
Bạn cần phải điều chỉnh cú pháp ở hai nơi:
- Đường dẫn nơi bạn được lưu trữ \ python.exe, đây là một ví dụ trong đó có một con trăn exe: \ c: \ users \ ron \ appdata \ local \ Program
Here is an example where a Python exe is located: “C:\Users\Ron\AppData\Local\Programs\Python\Python39\python.exe” - Đường dẫn trong đó tập lệnh Python của bạn được lưu trữ
And here is an example where a Python script is located:
“C:\Users\Ron\Desktop\Test\countdown.py”
Lưu ý rằng bạn sẽ cần thay đổi các đường dẫn để phản ánh các vị trí nơi các tệp được lưu trữ trên máy tính của bạn.
Đây là cách tập lệnh hàng loạt sẽ trông như thế nào trong Notepad cho ví dụ của chúng tôi:
@echo off "C:\Users\Ron\AppData\Local\Programs\Python\Python39\python.exe" "C:\Users\Ron\Desktop\Test\countdown.py" pause
Lưu Notepad bằng tiện ích mở rộng ‘.bat. Ví dụ: hãy để Lôi lưu Notepad dưới dạng Run_Script.bat.bat‘ extension. For example, let’s save the Notepad as Run_Script.bat
Một tệp hàng loạt mới, được gọi là Run Run_Script.bat, sẽ được tạo tại vị trí được chỉ định của bạn.Run_Script.bat,” will be created at your specified location.
Bước 4: Chạy tệp hàng loạt
Cuối cùng, nhấp đúp vào tệp Batch để chạy tập lệnh Python.
Sau đó, bạn sẽ nhận được đếm ngược như sau:
CountDown = 10
CountDown = 9
CountDown = 8
CountDown = 7
CountDown = 6
CountDown = 5
CountDown = 4
CountDown = 3
CountDown = 2
CountDown = 1
Bạn cũng có thể muốn kiểm tra nguồn sau có chứa các hướng dẫn bổ sung về các tập lệnh hàng loạt.
68
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi cố gắng chạy một tệp
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause1 trong Windows bằng tập lệnh Python.
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause2 Tệp:
Application.exe work.xml
Tôi viết mã Python:
import os
os.system["D:\xxx1\xxx2XMLnew\otr.bat "]
Đầu ra: Khi cố gắng chạy tệp, nó chỉ cần nhấp nháy dấu nhắc lệnh và công việc không được thực hiện.
Lưu ý: Tôi cũng cố gắng với chém thay thế, nhưng nó không hoạt động.
Và tôi cũng muốn lưu đầu ra của tệp trong một tệp khác.
Bất cứ ai cũng có thể đề xuất làm thế nào tôi có thể làm cho tập lệnh có thể chạy được.
Đã hỏi ngày 29 tháng 3 năm 2011 lúc 7:37Mar 29, 2011 at 7:37
2
Điều này đã được trả lời chi tiết về vậy. Kiểm tra chủ đề này, nó sẽ trả lời tất cả các câu hỏi của bạn: Thực hiện một quy trình con không thành công
Tôi đã tự mình thử với mã này:
batchtest.py
from subprocess import Popen
p = Popen["batch.bat", cwd=r"C:\Path\to\batchfolder"]
stdout, stderr = p.communicate[]
batch.bat
echo Hello World!
pause
Tôi đã có một ví dụ BatchTest.py từ chủ đề đã nói ở trên.
Đã trả lời ngày 29 tháng 3 năm 2011 lúc 7:49Mar 29, 2011 at 7:49
das_weezuldas_weezuldas_weezul
5.9822 Huy hiệu vàng27 Huy hiệu bạc33 Huy hiệu đồng2 gold badges27 silver badges33 bronze badges
7
import subprocess
filepath="D:/path/to/batch/myBatch.bat"
p = subprocess.Popen[filepath, shell=True, stdout = subprocess.PIPE]
stdout, stderr = p.communicate[]
print p.returncode # is 0 if success
Đã trả lời ngày 10 tháng 12 năm 2012 lúc 15:05Dec 10, 2012 at 15:05
2
Thay thế \ bằng / trong đường dẫn
countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 10
Đã trả lời ngày 6 tháng 1 năm 2012 lúc 17:13Jan 6, 2012 at 17:13
Raghuramraghuramraghuram
1611 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges
1
Có lẽ là cách đơn giản nhất để làm điều này là ->
countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 11
Đã trả lời ngày 23 tháng 11 năm 2017 lúc 13:57Nov 23, 2017 at 13:57
1
Tốt hơn là viết tệp
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause
1 theo cách mà hoạt động của nó không phụ thuộc vào thư mục làm việc hiện tại, tức là tôi khuyên bạn nên đặt dòng này ở đầu tệp@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause
1:countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 1
2Kèm theo filepath của tệp
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause
1 trong các trích dẫn kép, tức là:countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 1
3Để lưu đầu ra của một số lệnh Batch trong một tệp khác, bạn có thể sử dụng cú pháp chuyển hướng thông thường, ví dụ:
countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 1
4Hoặc trực tiếp trong tệp
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause
1 của bạn:countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 1
5
Đã trả lời ngày 9 tháng 3 năm 2016 lúc 2:21Mar 9, 2016 at 2:21
Tavtavtav
5576 Huy hiệu bạc8 Huy hiệu Đồng6 silver badges8 bronze badges
Bạn chỉ thiếu để làm cho nó thô. Vấn đề là với "\". Thêm r trước khi đường dẫn sẽ thực hiện công việc :]
countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 16
Đã trả lời ngày 18 tháng 9 năm 2018 lúc 8:31Sep 18, 2018 at 8:31
Vì vậy, tôi làm trong Windows 10 và Python 3.7.1 [đã thử nghiệm]:
countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 17
Đã trả lời ngày 7 tháng 11 năm 2018 lúc 8:55Nov 7, 2018 at 8:55
Merlinuwemerlinuwemerlinuwe
1693 Huy hiệu bạc8 Huy hiệu Đồng3 silver badges8 bronze badges
python_test.py
countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 18
Điều này cung cấp đầu ra từ tệp hàng loạt để được in trên bảng điều khiển Python Idle/Running. Vì vậy, trong tập tin hàng loạt, bạn có thể lặp lại kết quả trong mỗi bước để gỡ lỗi vấn đề. Điều này cũng hữu ích trong tự động hóa khi có lỗi xảy ra trong cuộc gọi hàng loạt, để hiểu và xác định lỗi một lỗi. [Đặt "tiếng vang" trong tệp hàng loạt bắt đầu để tránh in mọi thứ]
batch_1.bat
countdown = 10 while countdown > 0: print ['CountDown = ', countdown] countdown = countdown - 19
Đã trả lời ngày 7 tháng 5 năm 2018 lúc 5:43May 7, 2018 at 5:43
Nếu bạn đang cố gắng gọi một tệp
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause7 khác bên trong ________ 28-file. Bạn phải sử dụng
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause9 bên trong tệp ____ 28 mà bạn đang gọi. Đặt đường dẫn nên chỉ vào thư mục ở đó, ____ 27-file được đặt:
@echo off "Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py" pause0
Stefan
10k3 huy hiệu vàng48 Huy hiệu bạc87 Huy hiệu đồng3 gold badges48 silver badges87 bronze badges
Đã trả lời ngày 17 tháng 6 năm 2013 lúc 15:13Jun 17, 2013 at 15:13