Một tệp BAT mà tôi đã tạo trên hệ thống XP Pro SP3 của tôi hoạt động hoàn hảo mọi lúc.
Cài đặt trên một hệ thống XP [cũng Pro SP3] khác không thành công ("treo cứng") mọi lúc.Giới hạn lẻ trên các ống trong batfile trên XP
Sự cố hóa ra là trong ống nhiều nhánh. Để cô lập nó tôi vẫn tiếp tục đơn giản hóa cho đến khi tôi đến tối thiểu [và nhân tạo] test này
echo. | date | find "/" | find "/" | find "/"
Lưu ý: hai bước đầu tiên không được rút ngắn xuống còn date /t
vì một số hệ thống của người dùng là pre-XP [và Command do đó thiếu Tiện ích mở rộng]. Ngoài ra: kiểm tra cẩn thận cho thấy rằng date
đang thực thi lệnh nội bộ MS-DOS DATE
và find
đang thực hiện vani "FIND.EXE, ngày 4 tháng 8 năm 2004, 9216" được tìm thấy trong "C: \ WINDOWS \ system32 \" [và giống với bản sao an toàn trong "C: \ i386 \"].
Trên hệ thống không thành công, mọi lệnh có 4 hoặc nhiều hơn bị treo ở bước thứ năm, ngay cả khi - như ở đây - các chương trình rất đơn giản và số lượng văn bản mà chúng đang xử lý là nhỏ.
I did some further testing on the user's system yesterday and discovered a subtlety of which I was unaware. I entered the simplified command [above] at the command prompt. It failed ["hung"] as expected. However, when I rebooted and tried again before doing anything else [a case which would never occur in the user's normal operation], I got a shock: it worked [i.e., the output of the MS-DOS DATE command appeared as expected]. It worked again. Then on the third try the failure mode re-appeared, and remained consistent thereafter.
I confirmed that
files=40
is in effect on both systems, and gave up. I'm still curious but I can't spend a lot of time on a small project for a
pro bono client analyzing a problem for which I have easy work-arounds.
Thank you everyone here for your quick and useful responses.
Trên hệ thống ban đầu, lệnh với 4 hoặc nhiều | s công việc đúng bất kể là chương trình được gọi và bao nhiêu văn bản [trong lý do] họ đang xử lý.
Khi giới hạn được nhận ra có nhiều cách giải quyết khác nhau, vì vậy câu hỏi của tôi chỉ là một sự tò mò: ai có thể đề xuất giới hạn đến từ đâu và liệu có cài đặt [XP] sẽ tăng/loại bỏ nó không?
Lưu ý: Không có HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ AutoRun hoặc HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun tồn tại trên một trong hai hệ thống.
Ngoài ra: Tôi xin lỗi vì đã trả lời nhận xét bằng cách liên tục chỉnh sửa bài đăng gốc của tôi nhưng không cần biết tôi sử dụng trình duyệt nào để đăng nhập, cửa sổ bật lên "thêm nhận xét" [hoặc bất cứ điều gì được cho là] không bao giờ xuất hiện. Có lẽ sự hiểu biết của tôi rằng việc thêm nhận xét vào bài đăng của riêng tôi không yêu cầu điểm danh tiếng bị nhầm lẫn. Tuy nhiên, bây giờ tôi thấy rằng "hiển thị # nhận xét khác" cũng không hoạt động.
Cuối cùng: Vấn đề tôi đang gặp phải khi sử dụng trang này [triệu chứng chính trong đó là thông báo điều khiển javascript "Uncaught ReferenceError: StackExchange không được định nghĩa"] giống như được thảo luận ở đây https://meta.stackexchange.com/questions/117730/stack-overflow-onclick-actions-broken khoảng một năm trước.
Còn các phiên bản XP (Pro, x64 ...) thì sao? – cheesemacfly
Mỗi bên của đường ống được thực hiện thông qua một quy trình CMD.EXE mới. Liệu một trong hai máy có mục AutoRun trong sổ đăng ký có thể gây ra sự cố không? ('HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Trình xử lý Lệnh \ AutoRun' hoặc' HKEY_CURRENT_USER \ Software \ Microsoft \ Trình xử lý Lệnh \ AutoRun') – dbenham
'đầu' không phải là lệnh do Microsoft cung cấp. Với mục đích xác nhận nếu nó chỉ là một vấn đề O/S, hãy thay đổi chúng thành 'find'. –