Доскей для складної команди


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 = бар $ T baz
doskey cpdel = копія $ 1 $ 2 $ T del $ 1

від doskey /?:

$ T роздільник команд. Дозволяє декілька команд у макросі.

7

Щоб (дещо) додати відповідь Денніса Вільямсона , ви також можете уникнути символу труби, щоб передавати команди! Наприклад, я хотів команду, яка копіює матеріал у буфер обміну. Зважаючи на те, як COPYінтерпретуватиме його, вам потрібно виконати команду, що шукає goofy, щоб фактично скопіювати вказаний вами текст без того, щоб за ним пішов новий рядок.

Щоб визначити макрос для копіювання у буфер обміну, ви можете уникнути труби за допомогою ^:

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

Після виконання команди cc heyви тепер heyскопіювали в буфер обміну!


Мені теж було цікаво, як запобігти копії символу нового рядка! Спасибі.
Алекс Валлехо

7

щоб додати до попередніх відповідей, ви також можете це зробити:

mybatfile.cmd

    doskey /macrofile=aliases.txt

псевдоніми.txt

    foo = бар & baz
    cpdel = копія $ 1 $ 2 $ T del $ 1
    cc = echo | set / p = $ * | кліп

зауважте, що в макрофілі немає необхідності виходити з pipe / ampersand, і ви можете визначити кілька псевдонімів за один виклик.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.