Câu trả lời:
Tôi không biết cách thực hiện tệp .bat nhưng bạn có thể sử dụng echo
và pause
để giúp gỡ lỗi.
ECHO
Sẽ gửi lại một tin nhắn trong tệp loạt. Chẳng hạn như ECHO Hello World sẽ in Hello World trên màn hình khi thực thi. Tuy nhiên, nếu không có @ECHO OFF ở đầu tệp loạt, bạn cũng sẽ nhận được "ECHO Hello World" và "Hello World". Cuối cùng, nếu bạn chỉ muốn tạo một dòng trống, hãy nhập ECHO. thêm dấu chấm vào cuối sẽ tạo ra một dòng trống.TẠM DỪNG
Nhắc người dùng nhấn phím bất kỳ để tiếp tục.
Nguồn: Batch File Help
@ workmad3: answer có nhiều mẹo hay hơn để làm việc với echo
lệnh.
Một tài nguyên hữu ích khác ... DDB: Mẹo tệp hàng loạt DOS
Đảm bảo không có câu lệnh 'echo off' nào trong các tập lệnh và gọi 'echo on' sau khi gọi từng tập lệnh để đặt lại bất kỳ câu lệnh nào bạn đã bỏ lỡ.
Lý do là nếu echo được bật, thì trình thông dịch lệnh sẽ xuất ra từng lệnh (sau khi xử lý tham số) trước khi thực thi nó. Làm cho nó trông thực sự xấu khi sử dụng trong sản xuất, nhưng rất hữu ích cho mục đích gỡ lỗi vì bạn có thể thấy đầu ra bị sai ở đâu.
Ngoài ra, hãy đảm bảo rằng bạn đang kiểm tra các Mức độ Lỗi được đặt bởi các chương trình và tập lệnh hàng loạt. Hãy nhớ rằng có 2 phương pháp khác nhau được sử dụng trong tệp .bat cho việc này. Nếu bạn đã gọi một chương trình, thì mức Lỗi nằm trong% ERRORLEVEL%, trong khi từ các tệp hàng loạt, mức lỗi được trả về trong biến ErrorLevel và không cần% xung quanh nó.
Đối mặt với mối quan tâm tương tự, tôi đã tìm thấy công cụ sau với một tìm kiếm nhỏ trên Google:
" Take Command " của JPSoft bao gồm một IDE / trình gỡ lỗi tập tin hàng loạt. Video trình bày ngắn của họ thể hiện điều đó một cách độc đáo.
Tôi đang sử dụng phiên bản dùng thử kể từ một vài giờ. Đây là ý kiến khiêm tốn đầu tiên của tôi:
Nó yêu thích một thử.
Always quote the most relevant part of an important link
. Nếu không có liên kết, câu trả lời này sẽ biến mất, một lần nữa, có lẽ là tốt, nhưng thường thì loại gợi ý đặc biệt này của một phần mềm độc quyền, chưa được kiểm tra thường phù hợp nhất trong một nhận xét. Hãy để lại nó là tốt.
Tôi thấy phần mềm 'các bước đang chạy' (win32) đang làm chính xác những gì tôi đang tìm kiếm: http://www.steppingsoftware.com/
Bạn có thể tải một tệp bat, đặt các điểm ngắt / bắt đầu bước qua nó trong khi xem các biến đầu ra và môi trường.
Phiên bản đánh giá chỉ cho phép bước qua 50 dòng ... Có ai có giải pháp thay thế miễn phí với chức năng tương tự không?
loại bỏ @ECHO OFF và gọi tệp lô của bạn chuyển hướng TẤT CẢ đầu ra thành tệp nhật ký ..
c:> yourbatch.bat (tham số tùy chọn)> yourlogfile.txt 2> & 1
tìm thấy tại http://www.robvanderwoude.com/battech_debugging.php
THÀNH CÔNG !! đừng quên 2> & 1 ...
WIZ
Bạn đã cố định tuyến lại kết quả thành một tệp chưa? Giống như any.bat> log.txt
Bạn phải đảm bảo rằng trong trường hợp này, mọi tập lệnh được gọi khác cũng đang đăng nhập vào tệp như >> log.txt
Ngoài ra, nếu bạn đặt ngày / T và thời gian / T ở đầu và cuối của tệp lô đó, bạn sẽ nhận được thời gian tại thời điểm đó và bạn có thể lập bản đồ thời gian chạy tập lệnh và thứ tự của mình.
Hoặc .... Gọi tệp .bat chính của bạn từ tệp .bat khác và xuất kết quả thành tệp kết quả tức là
runner.bat> mainresults.txt
Nơi runner.bat gọi tệp .bat chính
Bạn sẽ thấy tất cả các hành động được thực hiện trong tệp .bat chính ngay bây giờ
Một vấn đề khá thường xuyên là tập lệnh hàng loạt được chạy bằng cách nhấp đúp vào biểu tượng của nó. Vì cá thể Command Prompt ( cmd.exe
) lưu trữ cũng kết thúc sau đó, nên không thể đọc các thông báo lỗi và đầu ra tiềm ẩn.
Để đọc các thông báo như vậy, điều rất quan trọng là bạn phải mở rõ ràng cửa sổ Command Prompt, chuyển đến thư mục làm việc thích hợp và chạy tập lệnh loạt bằng cách nhập đường dẫn / tên của nó.
bạn có thể sử dụng cmd \k
ở cuối tập lệnh của mình để xem lỗi. nó sẽ không đóng dấu nhắc lệnh của bạn sau khi thực hiện xong
hoặc, mở một cửa sổ cmd, sau đó gọi lô từ đó, kết quả sẽ hiển thị trên màn hình.