Doskey สำหรับคำสั่งผสม


32

Doskey ทำงานในรุ่นที่ทันสมัยของ Windows doskey foo=barสำหรับการตั้งชื่อแทนสำหรับคำสั่งเดียวเช่น

มีปัญหาเล็กน้อยพยายามที่จะใช้สำหรับคำสั่งสารประกอบที่เหมือนกับตั้งแต่นี้ได้รับการตีความว่าเป็นdoskey foo=bar & baz (doskey foo=bar) & bazการแก้ไขที่เห็นได้ชัดคือการเพิ่มวงเล็บอย่างชัดเจนdoskey foo=(bar & baz)แต่ด้วยเหตุผลบางอย่างนี้ใช้ไม่ได้และdoskey foo="bar & baz"ไม่ได้ผล

มีวิธีการทำเช่นนี้หรือไม่?

คำตอบ:



19

ใช้$Tเพื่อแยกคำสั่ง:

doskey foo = bar $ T baz
doskey cpdel = คัดลอก $ 1 $ 2 $ T del $ 1

จากdoskey /?:

ตัวคั่นคำสั่ง $ T อนุญาตให้ใช้หลายคำสั่งในแมโคร

7

หากต้องการ (เพิ่มขึ้นเล็กน้อย) ในคำตอบของ Dennis Williamsonคุณสามารถหลบเลี่ยงตัวอักษรไปป์เพื่อสั่งไพพ์! ตัวอย่างเช่นฉันต้องการคำสั่งที่คัดลอกข้อมูลไปยังคลิปบอร์ด เนื่องจากวิธีที่COPYจะตีความมันคุณจะต้องทำคำสั่งดูโง่ ๆเพื่อคัดลอกข้อความที่คุณระบุโดยไม่ต้องตามมันขึ้นบรรทัดใหม่

เพื่อกำหนดแมโครสำหรับการคัดลอกไปยังคลิปบอร์ดคุณสามารถหนีไปป์ด้วย^:

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

เมื่อเรียกใช้งานคำสั่งcc heyคุณจะได้heyคัดลอกไปยังคลิปบอร์ด!


ฉันยังสงสัยว่าจะป้องกันการลอกตัวละครขึ้นบรรทัดใหม่ได้อย่างไร! ขอบคุณ
Alex Vallejo

7

เพื่อเพิ่มคำตอบก่อนหน้านี้คุณยังสามารถทำสิ่งนี้:

mybatfile.cmd

    doskey /macrofile=aliases.txt

aliases.txt

    foo = bar & baz
    cpdel = คัดลอก $ 1 $ 2 $ T del $ 1
    cc = echo | set / p = $ * | clip

โปรดทราบว่าใน macrofile คุณไม่จำเป็นต้องหลบหนีไปป์ / แอมเปอร์และคุณสามารถกำหนดชื่อแทนได้หลายรายการในการโทรครั้งเดียว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.