Kịch bản DOS .bat không truyền vào đối số


0

Chúng tôi có một vấn đề trên một PC, dường như không tôn trọng các đối số trong các tập lệnh .bat, tức là không chuyển chúng sang các tập lệnh python. Nó hoạt động tốt trên 10 hoặc nhiều máy tương tự khác.

Chúng tôi có một kịch bản dơi như thế này:

@REM Just pass all arguments directly to the python script of the same name
@%~dpn0.py %*

Trên một PC này, có vẻ như các đối số không được truyền cho tập lệnh python đang bị thu hút.

Thành ngữ này được sử dụng ở mọi nơi trong không gian xây dựng của chúng tôi - và chúng tôi không thể tìm ra lý do tại sao nó chỉ thất bại trên một máy.

Có bất kỳ đề xuất nào về nguyên nhân, hoặc làm thế nào chúng ta có thể gỡ lỗi vấn đề, xin vui lòng?

  • HĐH: Windows 7 Pro, 64-bit
  • Phiên bản Python: 2.7.6

3
Đối với mục đích gỡ lỗi, điều gì xảy ra nếu bạn echo %*thay vì gọi tập lệnh Python và truyền tham số? Bạn có thể thấy tất cả các đối số? Bạn đã đạt đến giới hạn dòng lệnh 8191 như được giải thích ở đây chưa? support.microsoft.com/kb/830473
JSanchez

Câu trả lời:


2

Clare đã hỏi câu hỏi này thay cho tôi, nhưng tôi đã tìm ra chuyện gì đang xảy ra. Cảm ơn JSanchez cho con trỏ bắt đầu cho câu trả lời. Đó không phải là kịch bản dơi là vấn đề, đúng hơn là con trăn mà nó đang gọi; Tôi đã tìm thấy một công việc xung quanh nơi gõ

python the_python_script.py the arguments 

đã làm việc rồi Điều không xảy ra với tôi là kiểm tra chỉ cần gõ

the_python_script.py the arguments

tại dòng lệnh và để Windows quan tâm sử dụng python nào để chạy tập lệnh

Khi tôi làm theo cách đó, chương trình biểu hiện cùng một vấn đề - không tranh luận.

Điều này lần lượt dẫn tôi đến

Vì vậy, tôi đã kiểm tra sổ đăng ký - hiệp hội của tôi đã thực sự bị hỏng

Đã sửa, và bây giờ điều này có vẻ hoạt động ... vì vậy nó không phải là .battập lệnh, thay vào đó là liên kết tệp python.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.