Doskey
Вызов программы Doskey.exe, которая позволяет повторно вызывать команды Windows XP, редактировать командные строки и создавать макросы.
Синтаксис
doskey {/reinstall | /listsize=размер | /macros:[{all | программа}] | /history | /insert | /overstrike | /exename=программа | /macrofile=имя_файла | имя_макроса=[текст]}
Параметры
- /reinstall
- Установка новой копии программы Doskey.exe. Очистка буфера команд.
- /listsize=размер
- Задание максимального количества команд, сохраняемых в буфере.
- /macros
- Вывод списка всех макросов, заданных командой doskey. Для перенаправления списка в файл можно использовать символ перенаправления (>) вместе с параметром /macros. Допускается использование сокращения /m вместо /macros.
- all
- Вывод макросов doskey для всех программ.
- программа
- Вывод макросов doskey для заданной программы.
- /history
- Вывод всех команд, сохраняемых в памяти. Для перенаправления списка в файл можно использовать символ перенаправления (>) вместе с параметром /history. Допускается использование сокращения /h вместо /history.
- {/insert | /overstrike}
- Задание режима замены текста при вводе. Если используется параметр /insert, вводимый текст будет вставляться в старый (как при нажатии клавиши INSERT). При задании параметра /overstrike новый текст будет вводиться взамен старого. По умолчанию используется /overstrike.
- /exename=программа
- Задание программы (т. е. исполняемого файла), в которой выполняется макрос doskey.
- /macrofile=имя_файла
- Задание имени файла, содержащего макросы, которые требуется установить.
- имя_макроса=[текст]
- Создание макроса, который выполняет команды, заданные параметром текст. Параметр имя_макроса задает имя, которое присваивается данному макросу. Текст задает команды, которые записываются в макрос. Если параметр текст оставлен пустым, макрос имя_макроса не будет выполнять никаких команд.
- /?
- Отображение справки в командной строке.
Примечания
- Использование Doskey.exe
Программа Doskey.exe всегда доступна всем интерактивным программам, работающим в символьном режиме (таких как отладчики или программы копирования). Она поддерживает буфер выполнявшихся команд и макросы для каждой запущенной программы. Параметры командной строки doskey нельзя вызвать в программе. Эти параметры необходимо выполнить до запуска программы. Назначения комбинаций клавиш, сделанные в какой-либо программе, имеют приоритет перед назначениями команды doskey.
- Повторный вызов команд
Для повторного вызова команды можно использовать любую из нижеперечисленных клавиш. Если Doskey.exe используется в программе, клавиши, назначенные в этой программе, имеют приоритет.
Клавиша Описание СТРЕЛКА ВВЕРХ Перемещение на одну команду назад в буфере команд. DOWN ARROW Перемещение на одну команду вперед в буфере команд. PAGE UP Перемещение в начало буфера команд. PAGE DOWN Перемещение в конец буфера команд. - Редактирование командных строк
С помощью программы Doskey.exe можно редактировать текущую командную строку. Если Doskey.exe используется в другой программе, клавиши, заданные в этой программе, будут иметь приоритет и, возможно, не все клавиши редактирования Doskey.exe будут работать.
В следующей таблице перечислены команды редактирования doskey.
Клавиша или сочетание клавиш Описание СТРЕЛКА ВЛЕВО Перемещение курсора на один символ назад. СТРЕЛКА ВПРАВО Перемещение курсора на один символ вперед. CTRL + СТРЕЛКА ВЛЕВО Перемещение курсора на одно слово назад. CTRL + СТРЕЛКА ВПРАВО Перемещение курсора на одно слово вперед. HOME Перемещение курсора в начало строки. END Перемещение курсора в конец строки. ESC Удаление всех символов командной строки. F1 Копирование одного символа из шаблона в ту же позицию в окне командной строки. (Шаблоном является буфер памяти, в котором содержится последняя выполнявшаяся команда.) F2 Поиск в шаблоне символа, введенного после нажатия F2. Программа Doskey.exe вставит текст из шаблона до символа, который был задан. F3 Копирование оставшейся части шаблона в командную строку. Doskey.exe начинает копирование с позиции в шаблоне, которая соответствует позиции курсора в командной строке. F4 Удаление символов с текущей позиции курсора до указанного символа. Чтобы использовать эту клавишу редактирования, нажмите F4 и введите символ. Doskey.exe удалит текст от текущей позиции до первого появления заданного символа. F5 Копирование шаблона в командную строку. F6 Вставка символа конца файла (CTRL+Z) в текущую позицию курсора. F7 Вывод всех команд, сохраненных в памяти. Используйте клавиши СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ для выбора требуемой команды и клавишу ENTER для выполнения команды. Кроме того, номер данной команды, который выводится справа от текста команды, может быть использован с клавишей F9. ALT+F7 Удаление всех команд, сохраненных в памяти в текущем буфере. F8 Вывод всех команд из буфера команд, начинающихся с символов текущей команды. F9 Вывод команды, соответствующей введенному номеру в буфере команд. Для запуска команды необходимо нажать ENTER. Для вывода всех номеров и соответствующих команд используется клавиша F7. ALT+F10 Удаление всех макросов. - Использование doskey в программах
Некоторые интерактивные программы с символьным интерфейсом, такие как отладчики программ или программы передачи файлов (FTP), автоматически используют программу Doskey.exe. Для использования Doskey.exe программа должна быть процессом окна командной строки и использовать буферизованный ввод. Назначения комбинаций клавиш, сделанные в какой-либо программе, имеют приоритет перед назначениями команды doskey. Например, если клавиша F7 используется в программе для вызова некоторой функции, вывести содержимое буфера команд программы doskey будет невозможно.
Программа Doskey.exe поддерживает буфер команд для всех запущенных программ, что позволяет повторять и редактировать ранее вызывавшиеся из командной строки программы и запускать макросы doskey, созданные для этих программ. Если программа перезапускается в том же окне командной строки, все использованные ею команды доступны в буфере команд.
Doskey.exe необходимо запустить перед выполнением программы. Параметрами doskey нельзя воспользоваться в командной строке другой программы, даже если в ней применяются команды оболочки операционной системы.
Если требуется настроить режим работы программы Doskey.exe с какой-либо программой и создать макросы doskey для этой программы, можно создать пакетный файл, который сначала будет вызывать Doskey.exe с нужными параметрами, а затем запускать соответствующую программу.
- Задание режима вставки по умолчанию
Если нажата клавиша INSERT, текст можно вводить прямо в середину командной строки doskey без удаления предыдущего текста. Однако после нажатия клавиши ENTER режим замены восстанавливается. Для возвращения в режим вставки необходимо снова нажать INSERT.
Для переключения клавиатуры в режим вставки при нажатии клавиши ENTER используйте параметр /insert. Этот режим сохраняется до тех пор, пока не будет задан параметр /overstrike. Нажатие клавиши INSERT временно восстанавливает режим замены, но при нажатии клавиши ENTER в программе Doskey.exe устанавливается режим вставки.
Форма курсора изменяется при нажатии клавиши INSERT для смены режимов.
- Создание макросов
В программе Doskey.exe можно создавать макросы, выполняющие одну или несколько команд. В следующей таблице перечислены специальные символы, которые можно использовать для управления выполнением команд при записи макросов.
Символ Описание $G или $g Перенаправление вывода. Оба эти символа могут быть использованы для направления вывода на устройство или в файл, а не на экран. Эти символы эквивалентны символу перенаправления (>). $G$G или $g$g Добавление вывода в конец файла. Обе эти двухсимвольные комбинации добавляют вывод к существующему файлу, а не заменяют данные в нем. Эти комбинации эквивалентны символу перенаправления вывода с добавлением (>>). $L или $l Перенаправление ввода. Оба эти символа используются для считывания ввода с устройства или из файла, а не с клавиатуры. Эти символы эквивалентны символу перенаправления ввода (<). $B или $b Направление вывода макроса другой команде. Использование этих специальных символов эквивалентно использованию канала (|) в командной строке. $T или $t Разделители команд. Символы используются при создании макросов или вводе команд в командной строке программы doskey. Использование этих специальных символов эквивалентно использованию амперсанда (&) в командной строке. $$ Символ доллара ($). $1 до $9 Символы замещения параметров командной строки при вызове макроса. Представляют собой пакетные параметры, позволяющие использовать различные данные в командной строке при каждом вызове программы. Символ $1 в программе doskey аналогичен символу %1 в пакетных программах. $* Содержит все параметры командной строки, заданные при вызове макроса. Специальный символ $* это подставляемый символ, аналогичный пакетным параметрам с $1 по $9, но имеющий одно очень важное отличие: все, что введено в командной строке после имени макроса, подставляется вместо символа $* в макросе. - Вызов макросов команды doskey
Для вызова макроса необходимо ввести его имя, начиная с первой позиции командной строки. Если в макросе используется параметр $* или какой-либо из параметров $1 $9, вводите пробелы для разделения параметров. Вызов макросов doskey невозможен из пакетных программ.
- Создание макросов с именами, совпадающими с именами команд Windows XP
Если постоянно используется команда с определенными параметрами командной строки, можно создать макрос, имя которого будет совпадать с именем команды. Чтобы указать, что следует выполнить макрос или команду, руководствуйтесь следующими инструкциями.
- Для вызова макроса его имя должно вводиться с первой позиции командной строки без пробелов перед ним.
- Для вызова команды перед ее именем, вводимым из командной строки, следует ввести один или несколько пробелов.
- Удаление макроса
Чтобы удалить макрос, введите следующую команду:
doskey имя_макроса=
Примеры
Параметры /macros и /history полезны при создании пакетных программ для сохранения макросов и команд. Например, для сохранения всех текущих макросов doskey введите следующую команду:
doskey /macros > macinit
Чтобы воспользоваться макросами из файла Macinit, введите следующую команду:
doskey /macrofile=macinit
Чтобы создать пакетную программу Tmp.bat, которая содержит ранее использованные команды, введите следующую команду:
doskey /history > tmp.bat
Чтобы создать макрос с несколькими командами, следует использовать символ $t для разделения команд:
doskey tx=cd temp$tdir/w $*
В предыдущем примере макрос TX изменяет текущий каталог на каталог Temp и выводит список каталогов в расширенном формате. Символ $* можно использовать в конце макроса для задания дополнительных параметров команды dir при вызове макроса TX.
Следующий макрос использует пакетный параметр для задания нового имени каталога.
doskey mc=md $1$tcd $1
Макрос создает каталог, а затем делает его текущим.
Чтобы использовать предыдущий макрос для создания каталога Books, введите следующую команду:
mc books
Чтобы создать макрос doskey для программы Ftp.exe, задайте параметр /exename:
doskey /exename:ftp.exe go=open 10.127.1.100$tmget *.TXT c:\reports$bye
Чтобы воспользоваться предыдущим макросом, запустите программу ftp. В командной строке программы ftp введите следующую команду:
go
Программа ftp последовательно выполнит команды open, mget и bye.
Чтобы создать макрос, который выполняет быстрое копирование гибкого диска без подтверждения, введите следующую команду:
doskey qf=format $1 /q /u
Чтобы выполнить быстрое форматирование диска в дисководе A без подтверждения, введите следующую команду:
qf a:
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь