DOSKEY

DOSKEY — команда, доступная в операционных системах DOS, OS/2[1], Windows[2] и ReactOS[3]. Она добавляет функции истории команд, макросов и расширенного редактирования для интерпретаторов командной строки COMMAND.COM и cmd.exe.

Общие сведения
DOSKEY
Тип команда
Разработчики Microsoft, IBM, Novell, участники проекта ReactOS
Операционные системы MS-DOS, PC DOS, OS/2, eComStation, ArcaOS, Novell DOS 7, DR-DOS, Windows, ReactOS
Первый выпуск 1991
Аппаратная платформа Кроссплатформенно
Сайт docs.microsoft.com/en-us…

История

Команда была включена как программа-постоянный резидент в состав MS-DOS и PC DOS начиная с версии 5[4], затем в Windows 9x[5] и, наконец, в Windows 2000[6] и последующих версиях.

В начале 1989 года схожая по функциям возможность была представлена в DR-DOS 3.40 посредством директивы HISTORY в CONFIG.SYS. Это обеспечивало на уровне драйвера консоли буфер истории ввода и поиск по шаблону, полностью интегрированные в ОС и прозрачные для приложений. Летом 1991 года команда DOSKEY была добавлена в MS-DOS/PC DOS 5.0 для предоставления аналогичной функциональности. DOSKEY также ввела механизмы макрорасширения, хотя для работы с ним приложениям, таким как командные интерпретаторы, требовалась специальная поддержка. Начиная с Novell DOS 7 (1993), возможности макросов предоставлялись отдельной командой DOSKEY. Для эмуляции буфера истории DOSKEY в DR-DOS команда DOSKEY выступала надстройкой над внутренней функцией буфера истории, которая оставалась частью ядра.

Команда DOSKEY также включена в IBM OS/2 версии 2.0[7].

В современных операционных системах на базе Windows NT функции DOSKEY встроены в CMD.EXE, однако команда DOSKEY по-прежнему применяется для изменения соответствующих параметров.

В FreeDOS команда DOSKEY отсутствует, поскольку аналогичные функции уже встроены в командный интерпретатор[8].

Использование

Ключи команды

DOSKEY поддерживает ряд ключей командной строки:

DOSKEY [/ключ ...] [имя_макроса=[текст]]

/REINSTALL
Устанавливает новую копию DOSKEY.
/LISTSIZE=[размер]
Задаёт размер буфера истории команд.
/MACROS
Показывает все макросы DOSKEY.
/MACROS:ALL
Отображает макросы для всех исполняемых файлов, для которых заданы макросы DOSKEY.
/MACROS:[имя исполняемого файла]
Показывает макросы DOSKEY для указанного файла.
/HISTORY
Показывает все команды, сохранённые в памяти.
/INSERT
Задаёт режим вставки новых символов в существующую строку.
/OVERSTRIKE
Задаёт режим замещения существующего текста новыми символами.
/EXENAME=имя_файла
Указывает исполняемый файл.
/MACROFILE=имя_файла
Указывает файл с макросами для установки.
/APPEDIT
(не документировано — поддержка с MS-DOS 7)
/COMMAND
(не документировано — поддержка с MS-DOS 7)
/PERMANENT
(не документировано — поддержка с MS-DOS 7)
/SCRSIZE
(не документировано — поддержка с MS-DOS 7)
/XHISTORY
(не документировано — поддержка с MS-DOS 7)
[имя_макроса]
Имя создаваемого макроса.
[текст]
Команды, которые следует записать в макрос.

Комбинации клавиш

В сеансе работы DOSKEY поддерживаются следующие сочетания клавиш:

и
Просмотр истории команд
Esc
Очистка строки ввода
Ctrl+Home
Очистка строки от курсора до начала
Ctrl+End
Очистка строки от курсора до конца
F7
Отображение истории команд
Alt+F7
Очистка истории команд
F8
Поиск по истории команд
F9
Выбор команды по номеру
Alt+F10
Очистка определений макросов

Макросы команд

DOSKEY поддерживает макросы команд — механизм текстовой подстановки, схожий с алиасами (псевдонимами) командной строки в других средах.

$T
Разделитель команд; позволяет помещать несколько команд в один макрос.
$1-$9
Позиционные параметры, аналогичны %1-%9 в пакетных файлах.
$*
Заменяется всем текстом, следующим за именем макроса при вызове.

Альтернативы

Отсутствие истории команд в COMMAND.COM с первых версий MS-DOS считалось существенным недостатком. Было создано множество сторонних программ, решающих данную проблему — многие из них появились задолго до появления DOSKEY от самой Microsoft. Некоторые, например 4DOS и NDOS от JP Software, реализуют расширенное редактирование командной строки, в том числе автодополнение имён файлов. Среди известных альтернатив DOSKEY — DOSEDIT Джека Гершбаха, CED Криса Данфорда, DOSED Сверре Хусеби, CMDEDIT Ашока Надкарни, ANARKEY Стивена Калваса, TODDY Эрика Таука и усовершенствованный DOSKEY, разработанный Полом Хоулом.

Enhanced DOSKEY Пола Хоула[9] является улучшенной заменой стандартного DOSKEY.COM для MS-DOS и Windows 9x/Windows Me. Помимо меньшего размера на диске и в памяти, основное нововведение — автодополнение команд и имён файлов по клавише Tab. В версии 2.5 (2014) также появилась полноценная поддержка длинных имён файлов (LFN).

Примечания

  1. JaTomes Help — OS/2 Commands. Дата обращения: 28 июля 2019. Архивировано из оригинала 14 апреля 2019 года.
  2. Doskey (11 сентября 2009). Архивировано 21 января 2008 года.
  3. Reactos/Reactos. GitHub (2 ноября 2021). Архивировано 22 августа 2025 года.
  4. Running MS-DOS Version 6.22 (20th Anniversary Edition), 6th Revised edition. — Microsoft Press, 2003. — ISBN 0-7356-1812-7.
  5. Tim O'Reilly. Windows 98 in a Nutshell: A Desktop Quick Reference / Tim O'Reilly, Troy Mott, Walter Glenn. — O'Reilly, 1999. — ISBN 978-1565924864.
  6. Frisch, Æleen. Windows 2000 Commands Pocket Reference. — O'Reilly, 2001. — ISBN 978-0-596-00148-3.
  7. OS/2 2.0 Redbooks Volume 2 — DOS and Windows Environment (GG24-3731). Архивировано 2 апреля 2024 года.
  8. FreeDOS command: doskey. Архивировано 7 ноября 2011 года.
  9. Enhanced DOSKEY.com — с автодополнением, Paul Houle. Архивировано 18 сентября 2025 года.

Литература

  • Special Edition Using MS-DOS 6.22, Third Edition. — Que Publishing, 2001. — ISBN 978-0789725738.
  • Dyson, Peter. Mastering OS/2 Warp. — Sybex, 1995. — ISBN 978-0782116632.
  • Stanek, William R. Windows Command-Line Administrator's Pocket Consultant, 2nd Edition. — Microsoft Press, 2008. — ISBN 978-0735622623.
  • NWDOS-TIPs — Tipps & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds : [нем.]. — 3. — 1997-07-30. (NB. NWDOSTIP.TXT был частью MPDOSTIP.ZIP, поддерживался до 2001 года и распространялся на множестве сайтов. Приведённая ссылка ведёт к HTML-версии более раннего варианта.)

Ссылки