Doskey cho lệnh ghép


32

Doskey làm việc trong các phiên bản hiện đại của Windows để cài đặt bí danh cho các lệnh duy nhất, ví dụ doskey foo=bar.

Có một vấn đề nhỏ khi cố gắng sử dụng nó cho các lệnh ghép như doskey foo=bar & bazvì điều này được hiểu là (doskey foo=bar) & baz. Khắc phục rõ ràng sẽ là thêm dấu ngoặc đơn rõ ràng, doskey foo=(bar & baz)nhưng vì một số lý do, điều này không hoạt động và doskey foo="bar & baz"cũng không hoạt động.

Có cách nào để làm điều này?

Câu trả lời:



19

Sử dụng $Tđể tách các lệnh:

doskey foo = bar $ T baz
doskey cpdel = sao chép $ 1 $ 2 $ T del $ 1

từ doskey /?:

$ T Dấu phân cách lệnh. Cho phép nhiều lệnh trong một macro.

7

Để (phần nào) thêm vào câu trả lời của Dennis Williamson , bạn cũng có thể thoát khỏi ký tự ống để ra lệnh ống! Ví dụ, tôi muốn một lệnh sao chép nội dung vào bảng tạm. Do cách COPYgiải thích nó, bạn cần thực hiện một lệnh tìm kiếm ngớ ngẩn để nó thực sự sao chép văn bản bạn chỉ định mà không bị theo dõi bởi một dòng mới.

Để xác định macro để sao chép vào bảng tạm, bạn có thể thoát khỏi đường ống bằng ^:

doskey cc=echo^|set /p=$*^|clip

Sau khi thực hiện lệnh cc hey, bây giờ bạn sẽ heysao chép vào bảng tạm!


Tôi cũng đã tự hỏi làm thế nào để ngăn chặn bản sao của nhân vật dòng mới! Cảm ơn.
Alex Vallejo

7

để thêm vào các câu trả lời trước, bạn cũng có thể làm điều này:

mybatfile.cmd

    doskey /macrofile=aliases.txt

bí danh

    foo = thanh & baz
    cpdel = sao chép $ 1 $ 2 $ T del $ 1
    cc = echo | set / p = $ * | clip

lưu ý rằng trong macrofile, không cần thoát khỏi đường ống / ký hiệu và bạn có thể xác định nhiều bí danh trong một cuộc gọ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.