Tôi có thể tùy chỉnh dấu nhắc lệnh của Windows 7 để chỉ tô màu một số thông báo nhất định không?


1

Tôi đang chạy một số kiểm tra tự động và trong khi tôi gỡ lỗi cuộn thông tin bằng thiết bị đầu cuối dấu nhắc lệnh Windows. Kết quả trường hợp thử nghiệm bắt đầu bằng ok hoặc là not ok. Có cách nào để có được not ok tin nhắn để hiển thị màu đỏ?

Tôi muốn tùy chỉnh thiết bị đầu cuối Windows hơn là kiến ​​trúc tự động thử nghiệm.


3
Tôi không nghĩ rằng điều này là có thể với dấu nhắc lệnh mặc định. Cái gì đó như hamiltonlabs.com/Cshell.htmlm có thể bạn quan tâm
Ramhound

Điều này có chỉ cho bạn đi đúng hướng? [Câu hỏi xếp chồng] [1] [1]: stackoverflow.com/questions/2048509/ cấp
Gryphoenix

Làm một số điều tương tự, tôi làm điều CLS trước, sau đó hiển thị kết quả theo màu mong muốn. để lại kết quả trong khi thực hiện việc tiếp theo (để nó có thời gian) Sau đó xóa lại cho kết quả được tô màu tiếp theo. Toss trong một số nền flash cho lỗi. Thêm vào một số âm thanh cho yea và nay, Thật tuyệt vời nếu màu sắc của văn bản ở lại, thay vì thay đổi tất cả văn bản thành một màu.
Psycogeek

Câu trả lời:


1

Nhận đầu ra màu chọn lọc trong một cosole lệnh là khó khăn. Trong thời của DOS, bạn có thể sử dụng mã thoát ANSI thông qua ANSI.SYS. Nhưng điều đó không hoạt động trên các máy Windows hiện đại (chắc chắn không phải máy 64 bit và thậm chí có thể không phải máy 32 bit)

Bạn có thể sử dụng PowerShell để xuất một dòng màu. Ví dụ:

powershell write-host -foregroundcolor Red "Hello world"

Nhưng việc chuyển đổi bối cảnh rất chậm.

Ngoài ra còn có các tập tin hack hàng loạt sử dụng FINDSTR để chọn chuỗi đầu ra có màu. Xem Cách lặp lại với các màu khác nhau trong dòng lệnh Windows .

Nhưng cả hai kỹ thuật trên đều yêu cầu bạn cung cấp màu khi nội dung được tạo. Nhưng bạn muốn chọn lọc màu văn bản sau khi nó đã được tạo.

Chắc chắn không có tiện ích bản địa nào có thể làm những gì bạn muốn. Có lẽ có một công cụ của bên thứ 3 có thể tìm kiếm stdin và đánh dấu các trận đấu màu đỏ, nhưng tôi không quen với bất kỳ.

Thay vì sử dụng màu sắc, bạn có thể xem xét định dạng lại từng dòng có chứa chuỗi quan tâm. Ví dụ: các dòng khớp có thể được bắt đầu bằng một chuỗi như >>>>>>>>>>. Để thực hiện điều này, bạn cần hai điều: 1) Tìm kiếm và thay thế tiện ích dựa trên dòng regex, 2) khả năng đưa kết quả kiểm tra của bạn vào tiện ích.

Tôi đã viết một tiện ích lai JScript / batch gọi là REPL.BAT . Nó thực hiện tìm kiếm regex và thay thế trên stdin và ghi kết quả vào thiết bị xuất chuẩn. Tiện ích là tập lệnh thuần túy, do đó không cần thực thi bên thứ 3. Nó chạy trên mọi máy Windows từ XP trở đi. Tài liệu đầy đủ được xây dựng vào kịch bản.

Giả sử REPL.BAT nằm trong thư mục hiện tại của bạn hoặc tốt hơn là ở đâu đó trong PATH của bạn:

yourAutomatedTestCommand | repl ".*\bnot ok\b.*" ">>>>>>>>>> $&" i

Lệnh trên sẽ chỉ sửa đổi các dòng có chứa not ok (trường hợp không nhạy cảm) tại ranh giới từ. Có nhiều lựa chọn cho cách bạn định dạng lại dòng quan tâm. Ví dụ: toàn bộ dòng có thể được thêm cả trước và sau dòng sử dụng X tùy chọn kết hợp với \n trình tự thoát dòng mới.

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.