2013-01-13 47 views
11

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 DATEfind đ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.

+0

Còn các phiên bản XP (Pro, x64 ...) thì sao? – cheesemacfly

+1

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

+0

'đầ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'. –

Trả lời

0

Đôi khi, nếu một cái gì đó trong registry là mất tích, Bạn cần phải thêm nó bằng tay để làm cho nó làm việc. Hoặc, có được một số trình soạn thảo BAT cửa sổ nâng cao, điều này sẽ mở rộng khả năng các lệnh cửa sổ chuẩn của kịch bản lệnh hàng loạt của bạn và như vậy. Đối với điều này, họ thường nối thêm và biến tập tin batch của bạn để exe, kể từ khi, thực thi là động cơ để mở rộng khả năng. Hầu hết trong số họ là phần mềm chia sẻ, nhưng, thông báo chi tiết kỹ thuật của họ, trong trường hợp này, tất cả Bạn cần là trình soạn thảo đơn giản với công cụ mà trích xuất tập tin thực thi vào thư mục temp và thực hiện nó. Bạn có thể không cần một cái gì đó được thực hiện cho obfuscating tập tin thực thi của bạn.

Các vấn đề liên quan