Dos     (Содержание)

Задание в подсистеме MS-DOS поддержки связи с верхней областью памяти (UMA) или загрузки части системы в область высокой памяти (HMA).

Синтаксис

dos={high|low}[{,umb|,noumb}]

dos={[high,|low,}]{umb|noumb}

Параметры

{high|low}

Задание загрузки части подсистемы MS-DOS в область высокой памяти HMA. Параметр high позволяет загрузить часть подсистемы MS-DOS в область HMA. Параметр low используется для загрузки всей подсистемы MS-DOS в обычную память. По умолчанию используется параметр low.

{umb|noumb}

Задание поддержки связи между обычной памятью и областью верхней памяти в подсистеме MS-DOS. Параметр umb позволяет установить эту связь. Параметр noumb отключает связь. По умолчанию используется параметр noumb.

/?

Отображение справки в командной строке.

Примечания

  • Установка драйвера Himem.sys для команд dos=umb или dos=high

Перед использованием параметров dos=umb и dos=high должен быть установлен драйвер Himem.sys.

  • Использование параметра umb

Для загрузки программ и драйверов устройств в область верхней памяти необходимо указать команду dos=umb. Это позволит высвободить дополнительное свободное пространство в обычной памяти для других программ. Кроме того, необходимо установить драйвер доступа к блоку верхней памяти (UMB).

  • Использование параметра high

Если задан параметр high, подсистема MS-DOS попытается загрузить часть самой себя в область верхней памяти (HMA). Загрузка части MS-DOS в область HMA освобождает больше обычной памяти для работы программ.

  • Сочетание параметров

Если задан параметр high, подсистема MS-DOS попытается загрузить часть самой себя в область верхней памяти (HMA). Загрузка части MS-DOS в область HMA позволяет высвободить обычную память для работы программ.

В одной команде dos можно использовать несколько параметров, разделяя их запятыми. Например, следующие команды являются допустимыми:

dos=umb,low
dos=high,umb

Команду dos можно указать в любом месте файла Config.nt или эквивалентного загрузочного файла.


 

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:


 

Dosonly     (Содержание)

Запрет запуска из командной строки Command.com программ, отличных от приложений MS-DOS.

Синтаксис

dosonly

Параметры

отсутствуют

Примечания

  • Обычно при завершении работы приложения MS-DOS система Windows XP возвращает управление командному интерпретатору Cmd.exe. При вызове резидентной программы (TSR) или временной остановки приложения MS-DOS для возврата к командной строке, система Windows XP запускает Command.com — командный интерпретатор MS-DOS. Это сохраняет среду MS-DOS, позволяя работать непосредственно с резидентной программой.

Поскольку запуск других приложений из командной строки Command.com может привести к неправильной работе резидентной программы и приостановленного приложения MS-DOS, в Windows XP предусмотрена команда dosonly. Команда dosonly позволяет запускать с командной строки Command.com только исполняемые файлы MS-DOS. Команду dosonly можно поместить в файл Config.nt или в соответствующий ему специальный файл (PIF-файл) настройки приложения MS-DOS.

  • Файл Config.nt используется для инициализации среды MS-DOS, если только в PIF-файле приложения не указан другой загрузочный файл.

Примеры

Включите команду dosonly в файл Config.nt или в загрузочный файл, заданный в PIF-файле. Следующий пример иллюстрирует содержимое файла Config.nt.

dos=high,umb
device=%systemroot%\system32\himem.sys
files=40
@echo off
dosonly


 

Driverquery     (Содержание)

Вывод списка всех установленных драйверов устройств и их свойств.

Синтаксис

driverquery  [/s компьютер] [/u домен\пользователь /p пароль] [/fo {TABLE|LIST|CSV}] [/nh] [/v] [/si]

Параметры

/s компьютер

Задание имени или IP-адреса удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.

/u домен\пользователь

Выполнение команды с разрешениями учетной записи пользователя, заданного в параметре пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.

/p пароль

Указание пароля учетной записи пользователя, заданной параметром /u.

/fo {TABLE|LIST|CSV}

Задание формата вывода сведений о драйверах. Допустимые значения: TABLE, LIST и CSV. По умолчанию для выходных данных используется формат TABLE.

/nh

Исключение столбца заголовков из отображаемых сведений о драйверах. Данный параметр является допустимым, если параметр /fo имеет значение TABLE или CSV.

/v

Задание вывода подробных сведений о драйверах.

/si

Вывод сведений о цифровой подписи как для подписанных, так и неподписанных драйверов устройств.

/?

Отображение справки в командной строке.

Примеры

Далее приведены примеры использования команды driverquery:

driverquery
driverquery /fo csv
driverquery /nh
driverquery /s ipaddress
driverquery /s server1 /u hirpln /v driverquery /s server1 /u maindom\hirpln /p p@ssw3d /fo list


 

Debug     (Содержание)

Запуск Debug.exe, программы для проверки и отладки исполнительных файлов MS-DOS. Выполненная без параметров команда debug запускает программу Debug.exe и выводит приглашение команды debug, представленное дефисом (-).

Синтаксис

debug [[диск:][путь] имя_файла [параметры]]

Параметры

[диск:][путь] имя_файла

Задание расположения и имени исполняемого файла для тестирования.

параметры

Указание параметров командной строки, передаваемых отлаживаемой программе.

?

Вывод списка подкоманд команды debug.

Примечания

  • Использование команд подсистемы MS-DOS

Команда debug — это команда подсистемы MS-DOS, которая выполняется в среде WOW/NTVDM.

  • Разделитель параметров команды

Параметры можно вводить через запятые или пробелы, но это требуется только для шестнадцатеричных значений. Например, следующие команды эквивалентны:

dcs:100 110

d cs:100 110

d,cs:100,110

  • Использование команд debug

Существует несколько команд debug, которыми можно воспользоваться.

Debug: a (assemble)

Создание двоичного кода процессоров 8086/8087/8088 непосредственно в памяти. Выполненная без параметров команда a начинает работу с точки последнего останова.

Синтаксис

a [адрес]

Параметры

адрес

Задает адрес, по которому записаны инструкции на языке ассемблер. Параметр адрес принимает шестнадцатеричные значения без знака h.

?

Вывод списка команд debug.

Примечания

  • Задание правильных записей адреса

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр можно пропустить. По умолчанию для команд debug a, g, l, t, u и w адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Примеры правильных адресов:

CS:0100

04BA:0100

  • Задание мнемоник префикса

Задайте мнемонику префикса инструкции перед кодом операции (т. е. opcode), к которой она относится. Команда a создает исполняемый машинный код из инструкций на языке ассемблера. Все числовые значения должны быть представлены в шестнадцатеричном формате и записаны как набор от 1 до 4 символов.

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

Мнемоники cs:, ds:, es: и ss:. Мнемоникой, вызывающей возврат управления в другой сегмент кода (far return), является retf. Мнемоники для работы со строками должны точно определять размер элементов строк. Например, для перемещения строк из слов (16 бит) следует использовать movsw, а для перемещения строк из байтов (8 бит) следует использовать movsb.

  • Задание переходов и вызовы функций

Ассемблер автоматически обрабатывает переходы и вызовы (т. е. префиксы short, near или far ) в зависимости от смещения байтов. Имеется возможность переопределить переходы или вызовы с помощью префиксов near или far. Например:

-a0100:0500
0100:0500 jmp 502 ; короткий (short) переход на 2 байта
0100:0502 jmp near 505 ; ближний (near) переход на 3 байта
0100:0505 jmp far 50a ; длинный (far) переход на 5 байтов

Вместо префикса near можно использовать сокращение ne.

  • Задание адреса слова или байта в памяти

Если операнды ссылаются на адреса слов или байтов в памяти, тип данных должен быть задан с использованием префикса word ptr или byte ptr, которые можно сократить до wo для word ptr и до by для byte ptr. Например:

dec wo [si]
neg byte ptr [128]

  • Задание операндов

В программе Debug.exe используется общее соглашение о том, что операнды, указывающие на адрес в памяти, заключаются в квадратные скобки ([ ]). Это единственный способ, который позволяет различать непосредственные операнды и ссылки на области в памяти в Debug.exe. Например:

mov ax,21 ; загрузить число 21h в регистр AX
mov ax,[21] ; загрузить содержимое
; памяти по адресу 21h
; в регистр AX

  • Псевдоинструкции

С командой a часто используются две псевдоинструкции: операция db, которая размещает байты непосредственно в памяти, и операция dw, которая размещает в памяти слова. Например:

db 1,2,3,4,"ЭТО ПРИМЕР"
db 'ЭТО КАВЫЧКА: "'
db "ЭТО КАВЫЧКА: '"
dw 1000,2000,3000,"BACH"

  • Ввод данных в определенные байты
  • Деассемблирование байт

Примеры

Команда a допускает различное использование ссылок на регистры. Например:

add bx,34[bp+2].[si-1]
pop [bp+di]
push [si] )

Кроме того, команда a поддерживает использование синонимов дополнительных кодов операций: Например:

loopz 100
loope 100
ja 200
jnbe 200

Для дополнительных кодов операций процессора 8087 необходимо задать префиксы wait или fwait. Например:

fwait fadd st,st(3) ; эта строка вставляет
; в код префикса fwait

Debug: c (compare)

Сравнение двух блоков памяти.

Синтаксис

c диапазон адрес

Параметры

диапазон

Обязательный параметр. Задание начального и конечного адреса или начального адресы и длины первой области в памяти для сравнения.

адрес

Обязательный параметр. Задание начального адреса второй области памяти для сравнения.

?

Вывод списка команд debug.

Примечания

  • Задание правильных записей диапазона

Параметр диапазон используется в командах debug для задания диапазона памяти. Для задания диапазона можно использовать один из следующих форматов: начальный и конечный адрес или начальный адрес и длина (разделяются символом l) диапазона. Например, обе следующих команды задают 16-разрядный диапазон, начинающийся с адреса CS:100:

cs:100 10f

cs:100 l 10

  • Задание правильных записей адреса

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для команд debug a, g, l, t, u и w адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

CS:0100

04BA:0100

  • Если параметры диапазон и адрес совпадают, команда c ничего не выводит и возвращается к приглашению debug. Если при сравнении блоков памяти обнаружены различия, они выводятся командой c в следующем виде:

адрес1 байт1 байт2 адрес2

Примеры

Чтобы сравнить блок памяти от 100h до 10Fh с блоком памяти от 300h до 30Fh, введите следующую команду:

c100,10f 300

или

c100l10 300

Обе эти команды выведут следующие данные (предполагается, что DS = 197F):

197F:0100 4D E4 197F:0300
197F:0101 67 99 197F:0301
197F:0102 A3 27 197F:0302
197F:0103 35 F3 197F:0303
197F:0104 97 BD 197F:0304
197F:0105 04 35 197F:0305
197F:0107 76 71 197F:0307
197F:0108 E6 11 197F:0308
197F:0109 19 2C 197F:0309
197F:010A 80 0A 197F:030A
197F:010B 36 7F 197F:030B
197F:010C BE 22 197F:030C
197F:010D 83 93 197F:030D
197F:010E 49 77 197F:030E
197F:010F 4F 8A 197F:030F

Адреса 197F:0106 и 197F:0306 отсутствуют в списке. Это означает, что значения, расположенные по этим адресам, совпадают.

Debug: d (dump)

Просмотр содержимого заданного диапазона адресов памяти. Выполненная без параметров команда d выводит на экран содержимое 128 байт, начиная с конца диапазона адресов, заданного в предыдущей команде d.

Синтаксис

d [диапазон]

Параметры

диапазон

Задание начального и конечного адреса или начального адреса и длины блока памяти для просмотра его содержимого.

?

Вывод списка команд debug.

Примечания

  • Задание правильных записей диапазона

Параметр диапазон используется в подкомандах debug для задания диапазона памяти. Параметр диапазон можно задать в одном из следующих форматов: начальный адрес и конечный адрес или начальный адрес и длина (обозначаемая l) диапазона. Например, оба следующих выражения задают диапазон из 16 байтов, начинающийся с адреса CS:100:

cs:100 10f

cs:100 l 10

  • Если используется подкоманда d, содержимое памяти выводится командой Debug.exe двумя частями: шестнадцатеричной (каждый байт представлен в шестнадцатеричном формате) и текстовой (каждый байт представлен символом ASCII). Непечатаемые символы отображаются точкой (.) в текстовой части. Каждая строка на экране представляет содержимое 16 байт со знаком тире между восьмым и девятым байтом. Все строки начинаются на 16-ти байтной границе.

Примеры

Введите следующую команду:

dcs:100 10f

Команда debug.exe выводит содержимое диапазона в следующем формате:

04BA:0100 54 4F 4D 00 53 41 57 59-45 52 00 00 00 00 00 00.....

Команда Debug.exe выводит сведения в таком формате, если подкоманда d выполнена без параметров. Каждая строка на экране начинается с адреса, который отстоит от адреса предыдущей строки на 16 байт (или на 8 байт для экрана с 40 колонками). Для каждой последующей подкоманды d, вводимой без параметров, Debug.exe выводит следующую часть сведений непосредственно за предыдущей.

Чтобы вывести содержимое 20h байт, начиная с CS:100, введите следующую команду:

dcs:100 l 20

Чтобы вывести содержимое всех байт в диапазоне от 100h до 115h в сегменте CS, введите следующую команду:

dcs:100 115

Debug: e (enter)

Ввод данных в память по заданному адресу.

Синтаксис

e адрес [список]

Параметры

адрес

Обязательный параметр. Адрес начала области памяти для ввода данных.

список

Задание списка байтов, которые требуется ввести в память.

?

Вывод списка подкоманд debug.

Примечания

  • Задание правильных записей адреса

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

CS:0100

04BA:0100

  • Использование параметра адрес

При задании параметра адрес без указания параметра список Debug.exe выведет на экран адрес и его содержимое, затем повторит адрес на следующей строке и будет ждать ввода новой команды. В этот момент можно выполнить одно из следующих действий.

    • Заменить байт данных. Для этого введите новое значение. Если введенное значение не является допустимым шестнадцатеричным числом или содержит более двух цифр, Debug.exe не выводит на экран неверные или избыточные символы.
    • Перейти к следующему байту. Для этого нажмите клавишу ПРОБЕЛ. Для изменения данного байта введите новое значение после текущего. Если при нажатии клавиши ПРОБЕЛ пройдена 8-байтная граница, Debug.exe выводит на экран новую строку с новым адресом в начале строки.
    • Возвратиться к предыдущему байту. Для этого нажмите клавишу МИНУС. Для перемещения назад более чем на один байт нажмите эту клавишу несколько раз. При нажатии клавиши МИНУС Debug.exe выводит новую строку с текущим адресом и значением.
    • Остановить выполнение подкоманды e. Для этого нажмите клавишу ENTER. Это можно сделать в любой позиции курсора.
  • Использование параметра список

Если введен параметр список, подкоманда e последовательно заменяет существующие значения значениями из списка. При возникновении ошибки никакие значения не будут изменены.

Список может быть задан как шестнадцатеричными числами, так и строкой. При этом числа разделяются пробелами, запятыми или символами табуляции. Строки необходимо заключать в апострофы (т. е. 'строка') или кавычки (т. е. "строка").

  • Создание двоичного кода
  • Просмотр содержимого области памяти

Примеры

Введите следующую команду:

ecs:100

Debug.exe выведет содержимое первого байта в следующем формате:

04BA:0100 EB._

Чтобы заменить это значение числом 41, введите 41 в позицию курсора, как показано ниже:

04BA:0100 EB.41_

Последовательность байтов можно ввести в одной подкоманде e. Вместо нажатия клавиши Enter после нового значения, нажмите клавишу ПРОБЕЛ. Программа Debug.exe выведет следующее значение. В данном примере, если клавиша ПРОБЕЛ нажата три раза, Debug.exe выведет на экран следующие значения:

04BA:0100 EB.41 10. 00. BC._

Чтобы заменить шестнадцатеричное значение BC числом 42, введите 42 в позицию курсора, как показано ниже:

04BA:0100 EB.41 10. 00. BC.42_

Чтобы изменить значение 10 на 6F, дважды нажмите клавишу МИНУС для возврата к адресу 0101 (значение 10). Программа Debug.exe выводит следующие сведения:

04BA:0100 EB.41 10. 00. BC.42-
04BA:0102 00.-
04BA:0101 10._

Введите 6F в позицию курсора для изменения значения, как показано ниже:

04BA:0101 10.6F_

Нажмите клавишу ENTER для завершения выполнения подкоманды e и возврата к приглашению программы debug.

Рассмотрим пример ввода строковой величины:

eds:100 "Это пример текста"

Эта строка будет занимать 24 байта, начиная с адреса DS:100.

Debug: f (fill)

Заполнение адресов в определенной области памяти заданными значениями.

Синтаксис

f диапазон список

Параметры

диапазон

Обязательный параметр. Задание начального и конечного адреса или начального адреса и длины области памяти, которую требуется заполнить.

список

Обязательный параметр. Задание данных, которые требуется ввести.

?

Вывод списка подкоманд debug.

Примечания

  • Задание правильных записей диапазона

Параметр диапазон используется в подкомандах debug для задания диапазона памяти. Параметр диапазон можно задать в одном из следующих форматов: начальный адрес и конечный адрес или начальный адрес и длина (обозначаемая l) диапазона. Например, оба следующих выражения задают диапазон из 16 байтов, начинающийся с адреса CS:100:

cs:100 10f

cs:100 l 10

  • Задание данных

Данные можно задать в шестнадцатеричном или текстовом формате. Данные, ранее находившиеся по данному адресу, будут удалены.

  • Использование параметра список

Список может состоять из шестнадцатеричных чисел или строки, заключенной в кавычки (т. е. "строка").

Примеры

Чтобы заполнить область памяти с 04BA:100 по 04BA:1FF пятью определенными значениями (например 42, 45, 52, 54, 41) и повторять этот набор, пока 100h байт не будут заполнены программой Debug.exe, введите следующую команду:

f04ba:100l100 42 45 52 54 41

Debug: g (go)

Выполнение загруженной программы. Запущенная без параметров подкоманда g начинает выполнение с текущего адреса в реестрах CS:IP.

Синтаксис

g [=адрес] [точки_останова]

Параметры

адрес

Задание адреса в памяти, с которого требуется начать выполнение программы.

точки_останова

Указание до 10 временных точек останова, которые могут быть заданы как часть подкоманды g.

?

Вывод списка подкоманд debug.

Примечания

  • Задание правильных записей адреса

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

CS:0100

04BA:0100

  • Использование параметра адрес

Введите знак равенства (=) перед параметром адрес, чтобы отличить адрес от адресов точек останова (точки_останова).

  • Задание точек останова

Выполнение программы будет остановлено в первой встретившейся точке останова, независимо от расположения этой точки останова в списке параметра точки_останова. Debug.exe заменяет код, находящийся в точках останова, на инструкции прерывания.

Когда выполнение программы дошло до точки останова, Debug.exe восстанавливает код в точках останова и выводит на экран содержимое всех регистров, все флаги состояния и деассемблированную инструкцию, которая была выполнена последней. Debug.exe выводит те же сведения, которые получают при использовании полкоманды r (регистр) и указании адреса данной точки останова.

Если программа не остановлена ни в одной точке, Debug.exe не заменяет коды прерываний первоначальными инструкциями.

Точки останова могут быть установлены только по адресам, содержащим первый байт кода операции 8086 (opcode). Если установлено больше 10 точек останова, выводится следующее сообщение:

bp Error

  • Использование указателя на стек, задаваемый пользователем

Указатель на стек, задаваемый пользователем, должен быть допустимым, а емкость стека должна быть не менее 6 байт для подкоманды g. Для перехода к тестируемой программе в подкоманде g используется инструкция iret. Debug.exe устанавливает указатель на стек пользователя, помещает туда пользовательские флаги состояния, значение регистра кодового сегмента и указатель на текущую команду. (Если заданный пользователем стек неверен или имеет недостаточный объем, возможен сбой в операционной системе). Debug.exe записывает код прерывания (т. е. 0CCh) в указанные точки останова или адреса.

  • Перезапуск программы

Не перезапускайте программу при получении следующего сообщения:

Program terminated normally

Чтобы правильно запустить программу, перезагрузите ее с помощью подкоманд n (name) и l (load).

Примеры

Чтобы запустить текущую программу и выполнить ее до точки останова по адресу 7550 в сегменте CS, введите следующую команду.

gcs:7550

Debug.exe выведет на экран содержимое регистров и состояние флагов, а затем остановит подкоманду g.

Чтобы установить две точки останова, введите следующую команду:

gcs:7550, cs:8000

Если подкоманда g введена снова после остановки в точке останова, выполнение начнется с инструкции, следующей за точкой останова, а не с обычного адреса начала программы.

Debug: h (hexadecimal)

Выполнение шестнадцатеричных арифметических операций над двумя заданными числами.

Синтаксис

h число1 число2

Параметры

число1

Обязательный параметр. Первое шестнадцатеричное число в диапазоне от 0 до FFFFh.

число2

Обязательный параметр. Второе шестнадцатеричное число в диапазоне от 0 до FFFFh.

?

Вывод списка подкоманд debug.

Заметки

  • В программе Debug.exe два введенных числа складываются, а затем вычисляется их разность. Результаты вычислений выводятся в одной строке — вначале сумма, затем разность.

Примеры

Введите следующую команду:

h19f 10a

Результаты вычислений Debug.exe будут выведены в виде:

02A9 0095

Debug: i (input)

Считывание и вывод на экран одного байта из указанного порта ввода.

Синтаксис

i порт

Параметры

порт

Обязательный параметр. Задание порта ввода адресом. Адрес может быть 16-битным значением.

?

Вывод списка подкоманд debug.

Примеры

Введите следующую команду:

i2f8

Если находящаяся в порту величина равна 42h, Debug.exe считает ее и выведет в следующем виде:

42

 

Debug: l (load)

Загрузка файла или содержимого сектора диска в память. Выполненная без параметров подкоманда l загружает файл, указанный в командной строке программы debug, в память, начиная с адреса CS:100. В регистрах BX и CX указывается количество загруженных байт. Если имя файла не было задано в командной строке debug, используется файл, ранее заданный при вызове последней подкоманды n.

Синтаксис

l [адрес]

l [адрес] [диск] [первый_сектор] [число]

Параметры

адрес

Задание адреса области памяти, в которую требуется загрузить содержимое файла или сектора. Если параметр адрес не задан, используется текущий адрес в регистре CS.

диск

Задание накопителя, содержащего диск, с которого считываются определенные сектора. Данный параметр задается числом: 0 = A, 1 = B, 2 = C и т. д.

первый_сектор

Задание шестнадцатеричного номера первого сектора, содержимое которого требуется загрузить.

число

Задание шестнадцатеричного числа последовательных секторов, содержимое которых требуется загрузить. Параметры диск, первый_сектор и число используются только в том случае, когда необходимо загрузить содержимое определенных секторов, а не файл, указанный в командной строке debug или в последней подкоманде n (name).

?

Вывод списка подкоманд debug.

Заметки

  • Для загрузки задаваемого регистрами BX:CX числа байтов из файла на диске используется следующий синтаксис:

l [адрес]

  • Для пропуска файловой системы и прямой загрузки указанных секторов используется следующий синтаксис:

l [адрес] [диск] [первый_сектор] [число]

  • Задание правильных записей адреса

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. All numeric values are in hexadecimal format. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

CS:0100

04BA:0100

  • Использование параметра адрес

При вызове подкоманды l с указанием параметра адрес Debug.exe загрузит файл или содержимое сектора диска в область памяти, начиная с адреса.

  • Использование всех параметров

При вызове подкоманды l со всеми параметрами Debug.exe загружает содержимое сектора диска, а не файла.

  • Загрузка содержимого сектора диска

Каждый сектор в указанном диапазоне считывается с диска, заданного параметром диск. Debug.exe начинает загрузку с первого_сектора и последовательно загружает сектора в память, пока не будет загружено заданное число секторов.

  • Загрузка файла .exe

Для файлов с расширением .exe параметр адрес игнорируется. В этом случае Debug.exe использует загрузочный адрес, задаваемый в заголовке .exe файла. При загрузке заголовок отделяется от самого .exe файла, загружаемого в память, поэтому размер файла, указанный в заголовке, и фактически занимаемый размер в памяти будут различаться. Для просмотра .exe файла целиком он может быть переименован в файл с другим расширением и затем просмотрен в программе Debug.

  • Загрузка файлов .hex

В программе Debug.exe файлы с расширением .hex распознаются как файлы в шестнадцатеричном формате. Подкоманду l можно запустить без параметров для загрузки такого шестнадцатеричного файла, начиная с адреса, указанного в данном файле. Если подкоманда l запущена с параметром адрес, начальная точка загрузки определяется как сумма заданного адреса и адреса, содержащегося в шестнадцатеричном файле.

Примеры

В командной строке введите:

debug

Введите следующую команду:

nfile.com

Чтобы загрузить файл File.com, введите следующую команду:

l

Debug.exe загружает этот файл и выводит приглашение debug.

Чтобы загрузить содержимое 109 (6Dh) секторов диска C, начиная с логического сектора 15 (0Fh), в область памяти, начиная с адреса 04BA:0100, введите следующую команду:

l04ba:100 2 0f 6d

Debug: m (move)

Копирование содержимого одного блока памяти в другой.

Синтаксис

m диапазон адрес

Параметры

диапазон

Обязательный параметр. Задание начального и конечного адреса или начального адреса и длины области памяти, содержимое которой требуется скопировать.

адрес

Обязательный параметр. Задание начального адреса области памяти, в которую требуется скопировать содержимое диапазона.

?

Вывод списка подкоманд debug.

Примечания

  • Задание правильных записей диапазона

Параметр диапазон используется в подкомандах debug для задания диапазона памяти. Параметр диапазон можно задать в одном из следующих форматов: начальный адрес и конечный адрес или начальный адрес и длина (обозначаемая l) диапазона. Например, оба следующих выражения задают диапазон из 16 байтов, начинающийся с адреса CS:100:

cs:100 10f

cs:100 l 10

  • Задание правильных записей адреса

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

CS:0100

04BA:0100

  • Копирование данных

Если адреса в копируемом блоке памяти заданы так, что в этот блок не записываются новые данные, то информация в этом блоке не изменяется. Если же операция копирования является перекрывающей, перекрывающиеся данные перезаписываются. (Операция копирования является перекрывающей, если два блока памяти имеют общую часть).

  • Перекрывающееся копирование двух областей памяти

Подкоманда m выполняет перекрывающее копирование без потери данных в области назначения. Содержимое адресов, которые будут перезаписаны, копируется в первую очередь. Если данные копируются из старших адресов в младшие адреса, операция копирования начинается с младшего адреса исходного блока и продолжается в направлении старшего адреса. И наоборот, если данные копируются из младших адресов в старшие, копирование начинается со старших адресов исходного блока и продолжается в направлении младшего адреса.

Примеры

Чтобы скопировать содержимое адресов с CS:110 по CS:510, а затем с CS:10F по CS:50F и так далее, пока все содержимое адресов с CS:100 по CS:500 не будет скопировано, введите следующую команду:

mcs:100 110 cs:500

Чтобы просмотреть результаты, воспользуйтесь подкомандой d (dump), указав адреса, заданные в подкоманде m.

Debug: n (name)

Задание имени исполняемого файла для команд debug l (load) или w (write) или задание параметров для отлаживаемого исполняемого файла. Выполненная без параметров подкоманда n очищает текущие значения.

Синтаксис

n [путь][исполняемый_файл]

n [параметры_файла]

Параметры

[путь][исполняемый_файл

Задание расположения и имени исполняемого файла для тестирования.

[параметры_файла]

Задание параметров и ключей командной строки для тестируемого исполняемого файла.

?

Вывод списка подкоманд debug.

Примечания

  • Использование подкоманды n

Подкоманду n можно использовать двумя способами. Во-первых, для задания имени файла для последующих подкоманд l (load) или w (write). Если программа Debug.exe вызвана без задания имени файла для отладки, команда n имя_файла должна быть вызвана перед использованием команды l для загрузки файла. Имя файла форматируется соответствующим образом для контрольного блока файла (FCB) по адресу CS:5C. Во-вторых, подкоманда n может использоваться для задания параметров и ключей командной строки отлаживаемого файла.

  • Области памяти

В следующей таблице перечислены четыре области памяти, которые используются командой n.

Область памяти

Contents

CS:5C

Блок управления файлом (FCB) для файла 1

CS:6C

Блок управления файлом (FCB) для файла 2

CS:80

Длина строки команды n (в символах)

CS:81

Начало строки команды n

Первое имя файла, задаваемое командой n, размещается в блоке управления файлом по адресу CS:5C. Если задано второе имя, оно помещается в блок управления файлом по адресу CS:6C. Количество символов в командной строке команды n (кроме первого символа, n) сохраняется по адресу CS:80. Собственно командная строка n (снова без символа n) сохраняется, начиная с адреса CS:81. Эти символы могут быть любыми параметрами и разделителями, которые допустимо вводить с командной строки в Windows 2000.

Примеры

В этом примере запускается команда debug и загружается программа Prog.com для отладки. Чтобы указать два параметра для программы Prog.com и запустить эту программу, введите следующую команду:

debug prog.com
nparam1 param2
g

В этом случае подкоманда g (go) запускает программу так, как если бы она была запущена с командной строки в виде:

prog param1 param2

При тестировании и отладке создается среда времени исполнения для программы Prog.com.

В следующей последовательности команд первая подкоманда n задает имя файла File1.exe для последующей подкоманды l (load), которая загружает файл File1.exe в память. Вторая подкоманда n задает параметры для файла File1.exe. Наконец, подкоманда g запускает File1.exe так, как если бы с командной строки было бы введено File1 File2.dat File2.dat.

nfile1.exe
l
nfile2.dat file3.dat
g

После команды l во втором экземпляре команда n не используется. Если подкоманда w (write) используется во втором экземпляре подкоманды n, файл File1.exe (т. е. отлаживаемый) сохраняется под именем File2.dat. Чтобы этого не произошло, всегда вызывайте команду l или w сразу же после команды n в первой форме.

Debug: o (output)

Вывод байта в порт вывода.

Синтаксис

o порт байт

Параметры

порт

Обязательный параметр. Задание адреса порта вывода. Адрес порта может быть 16-битным значением.

байт

Обязательный параметр. Задание значения байта, выводимого в порт.

?

Вывод списка подкоманд debug.

Примеры

Чтобы отправить байт 4Fh в порт вывода по адресу 2F8h, введите следующую команду:

o2f8 4f

Debug: p (proceed)

Выполнение цикла, строковой инструкции, программного прерывания или процедур, а также вход в другую инструкцию. Выполненная без параметров команда p выводит список реестров и их текущих значений.

Синтаксис

p [=адрес] [число]

Параметры

адрес

Задание адреса инструкции, которая будет выполнена первой. Если адрес не указан, по умолчанию выполнение начнется с инструкции, задаваемой регистрами CS:IP.

число

Задание количества инструкций, которые будут выполнены перед возвратом управления программе Debug.exe. По умолчанию используется значение 1.

?

Вывод списка подкоманд debug.

Примечания

  • Задание правильных записей адреса

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

CS:0100

04BA:0100

  • Использование параметра адрес

Если в параметре адрес не указан сегмент, Debug.exe использует регистр CS тестируемой программы. Если параметр адрес опущен, выполнение программы начинается с адреса, указываемого регистрами CS:IP. Чтобы отличить параметр адрес от параметра число, перед адресом обязательно должен быть введен знак равенства (=). В случае если инструкция по заданному адресу не является циклом, строковой инструкцией, программным прерыванием или процедурой, подкоманда p работает также, как подкоманда t (trace).

  • Передача управления тестируемой программе

Если в программе Debug.exe управление передано тестируемой программе с помощью команды p, выполнение продолжается до тех пор, пока цикл, строковая инструкция, программное прерывание или процедура не будут закончены или пока не будет выполнено заданное количество инструкций. Затем управление возвращается к Debug.exe.

  • Просмотр сообщений

После запуска подкоманды p Debug.exe выводит на экран содержимое регистров, флаги состояния и следующую инструкцию в деассемблированном виде.

Предупреждение!

    • Подкоманда p не может быть использована для отладки инструкций, содержащихся в ПЗУ.

Примеры

В этом примере тестируемая программа содержит инструкцию call по адресу CS:143F. Чтобы выполнить процедуру, указанную в call, и возвратиться в программу Debug.exe, введите следующую команду:

p=143f

Результаты программы Debug.exe будут выведены в следующем формате:

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=2246 ES=2246 SS=2246 CS=2246 IP=1443 NV UP EI PL NZ AC PO NC
2246:1442 7505 JNZ 144A

Debug: q (quit)

Окончание работы программы Debug.exe без сохранения тестируемого файла и возврат в командную строку.

Синтаксис

q

Параметры

?

Вывод списка подкоманд debug.

Debug: r (register)

Редактирование содержимого одного или нескольких регистров ЦПУ. Выполненная без параметров команда r выводит содержимое всех регистров и флагов из временного хранилище регистра, состояния всех всех флагов и декодированную инструкцию в текущей области.

Синтаксис

r [регистр]

Параметры

регистр

Задание имени регистра, содержащего сведения, которые требуется вывести на экран.

?

Вывод списка подкоманд debug.

Примечания

  • Использование подкоманды r

Если задан регистр, Debug.exe выводит на экран его 16-разрядное значение в шестнадцатеричном формате и двоеточие в качестве приглашения. Если требуется изменить значение содержащееся в регистре, введите новое значение и нажмите клавишу ENTER. В противном случае нажмите клавишу ENTER для возврата к приглашению программы debug.

  • Допустимые регистры x86

В следующей таблице перечислены допустимые регистры x86 для параметра регистр.

Значение

ax

bp

bx

cs

cx

di

ds

dx

es

f

ip

pc

si

sp

ss

Если задан недопустимый регистр, выводится следующее сообщение:

Ошибка: br

  • Использование f вместо регистра

Если указать f вместо регистра, Debug.exe выводит на экран текущее значение каждого флага состояния в виде двухбуквенного кода и приглашение debug. Для изменения значения флага введите соответствующий двухбуквенный код, воспользовавшись следующей таблицей.

Флаг

Установлен

Снят

Переполнение

ov

nv

Направление

dn (уменьшение)

up (увеличение)

Прерывание

ei (включено)

di (выключено)

Знак

ng (отрицательный)

pl (положительный)

Ноль

zr

nz

Добавочный перенос

ac

na

Четность

pe (четный)

po (нечетный)

Перенос

cy

nc

Новые значения флагов могут быть введены в любой последовательности. Между этими значениями не нужно вводить пробел. Чтобы завершить выполнение подкоманды r, нажмите клавишу ENTER. Флаги, новые значения для которых не вводились, останутся неизмененными.

  • Сообщения подкоманды r

При задании более одного значения для флага выводится следующее сообщение:

Ошибка: df

При вводе кода, не содержащегося в таблице, выводится следующее сообщение:

Ошибка: bf

В обоих случаях Debug.exe пропустит все значения, следующие после неверного ввода.

  • Значения, используемые по умолчанию в программе Debug.exe

Когда запускается программа Debug.exe, сегментный регистр указывает на нижнюю границу свободной памяти, указатель инструкций устанавливается равным 0100h, все флаги состояния очищаются, оставшиеся регистры обнуляются, за исключением sp, который устанавливается равным FFEEh.

Примеры

Если текущее положение указателя инструкций равно CS:11A, выводятся следующие сведения:

AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000
DS=04BA ES=04BA SS=04BA CS=O4BA IP=011A NV UP DI NG NZ AC PE NC
04BA:011A CD21 INT 21

Чтобы просмотреть только состояния флагов, введите следующую команду:

rf

Результаты программы Debug.exe выводятся в следующем формате:

NV UP DI NG NZ AC PE NC - _

Введите одно и несколько допустимых значений флагов с пробелами или без них. Например:

nv up di ng nz ac pe nc - pleicy

Debug.exe завершит выполнение подкоманды r и выведет приглашение debug. Для просмотра изменений воспользуйтесь командой r или rf. Программа Debug.exe выводит следующие сведения:

NV UP EI PL NZ AC PE CY - _

Нажмите клавишу ENTER для возврата к приглашению программы debug.

Debug: s (search)

Поиск в области памяти по шаблону из одного или нескольких байт.

Синтаксис

s диапазон список

Параметры

диапазон

Обязательный параметр. Задает начальный и конечный адреса области памяти, в которой будет производиться поиск.

список

Обязательный параметр. Задание шаблона из одного или нескольких байт или символьной строки для поиска.

?

Вывод списка подкоманд debug.

Примечания

  • Задание правильных записей диапазона

Параметр диапазон используется в подкомандах debug для задания диапазона памяти. Параметр диапазон можно задать в одном из следующих форматов: начальный адрес и конечный адрес или начальный адрес и длина (обозначаемая l) диапазона. Например, оба следующих выражения задают диапазон из 16 байтов, начинающийся с адреса CS:100:

cs:100 10f

cs:100 l 10

  • Использование параметра список

Если используется параметр список, отделяйте значение каждого байта пробелом или запятой, а строки заключайте в кавычки (т. е. "строка"). Если список содержит несколько значений, выводится только первый адрес, в котором встречается данное значение. Если список содержит только одно значение, выводятся все адреса из указанного диапазона, в которых встречается данное значение.

Примеры

Чтобы найти все адреса в диапазоне от CS:100 до CS:110, содержащие значение 41, введите следующую команду:

scs:100 110 41

Результаты программы Debug.exe будут выведены в следующем формате:

04BA:0104
04BA:010D
-

Чтобы найти строку «Ph» в диапазоне от CS:100 до CS:1A0, введите следующую команду:

scs:100 1a0 "Ph"

Debug: t (trace)

Выполнение одной инструкции с выводом содержимого регистров, флагов состояния и декодированной формы выполняемой инструкции. При запуске подкоманды t без параметров выполнение начинается с адреса, указанного в регистрах CS:IP программы.

Синтаксис

t [=адрес] [число]

Параметры

адрес

Задание адреса, с которого Debug.exe начнет выполнение инструкций.

число

Указывает число инструкций для выполнения. Указанное значение должно быть шестнадцатеричным числом. По умолчанию значение равно 1.

?

Вывод списка подкоманд debug.

Примечания

  • Задание правильных записей адреса

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

CS:0100

04BA:0100

  • Трассировка инструкций, записанных в ПЗУ

Подкоманда t использует аппаратный режим трассировки микропроцессоров 8086 и 8088. Следовательно, также можно трассировать инструкции, хранимые в ПЗУ.

Примеры

Если текущая позиция указателя кода является 04BA:011A, Debug.exe выведет следующие сведения:

AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000
DS=04BA ES=04BA SS=04BA CS=O4BA IP=011A NV UP DI NG NZ AC PE NC
04BA:011A CD21 INT 21

Debug: u (unassemble)

Деассемблирование байтов и просмотр соответствующего исходного кода, включая адреса и двоичные значения. Деассемблированный код выводится в формате, похожем на распечатку ассемблерного файла. Выполненная без параметров подкоманда u деассемблирует 20h байт (значение по умолчанию), начиная с первого адреса после адреса, использованного в предыдущей подкоманде u.

Синтаксис

u [диапазон]

Параметры

диапазон

Задание начального и конечного адреса или начального адреса и длины участка двоичного кода, который требуется деассемблировать.

?

Вывод списка подкоманд debug.

Примечания

  • Задание правильных записей диапазона

Параметр диапазон используется в подкомандах debug для задания диапазона памяти. Параметр диапазон можно задать в одном из следующих форматов: начальный адрес и конечный адрес или начальный адрес и длина (обозначаемая l) диапазона. Например, оба следующих выражения задают диапазон из 16 байтов, начинающийся с адреса CS:100:

cs:100 10f

cs:100 l 10

Примеры

Чтобы деассемблировать 16 (10h) байт, начиная с адреса 04BA:0100, введите следующую команду:

u04ba:100l10

Результаты программы Debug.exe выводятся в следующем формате:

04BA:0100 206472 AND [SI+72],AH
04BA:0103 69 DB 69
04BA:0104 7665 JBE 016B
04BA:0106 207370 AND [BP+DI+70],DH
04BA:0109 65 DB 65
04BA:010A 63 DB 63
04BA:010B 69 DB 69
04BA:010C 66 DB 66
04BA:010D 69 DB 69
04BA:010E 63 DB 63
04BA:010F 61 DB 61

Чтобы просмотреть сведения только об адресах с 04BA:0100 по 04BA:0108, введите следующую команду:

u04ba:0100 0108

Программа Debug.exe выводит следующие сведения:

04BA:0100 206472 AND [SI+72],AH
04BA:0103 69 DB 69
04BA:0104 7665 JBE 016B
04BA:0106 207370 AND [BP+DI+70],DH

Debug: w (write)

Запись файла или определенных секторов на диск. При запуске подкоманды w без параметров запись начинается с адреса CS:100.

Синтаксис

w [адрес]

w [адрес] [диск] [первый_сектор] [число]

Параметры

адрес

Задание начального адреса файла или части файла, которые требуется записать на диск.

диск

Задание дисковода, содержащего диск назначения. Данный параметр задается числом: 0 = A, 1 = B, 2 = C и т. д.

первый_сектор

Задание шестнадцатеричного адреса первого сектора для записи.

число

Задание количества секторов, которые требуется записать.

?

Вывод списка подкоманд debug.

Примечания

  • Для записи количества байт, заданного в регистрах BX:CX, в файл на диске используется следующий синтаксис команды:

w [адрес]

  • Для пропуска файловой системы и прямой записи указанных секторов используется следующий синтаксис команды:

w [адрес] [диск] [первый_сектор] [число]

  • Задание правильных записей адреса

Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

CS:0100

04BA:0100

  • Имя файла на диске нужно задать при запуске программы Debug.exe или в последней вызванной подкоманде n (name). Оба эти метода правильно форматируют имя файла для блока управления файлом (FCB) по адресу CS:5C.
  • Сброс значений регистров BX:CX перед использованием команды w без параметров.

Если используются подкоманды g (go), t (trace), p (proceed) или r (register), перед использованием команды w без параметров значения регистров BX:CX необходимо сбросить.

  • Запись измененного файла на диск

Если файл был изменен, но имя, размер и начальный адрес не менялись, Debug.exe позволяет записать файл в его исходное расположение на диске.

  • Запись файлов .exe или .hex

Файлы с расширениями .exe и .hex нельзя записать с помощью этой команды.

Предупреждение!

    • Непосредственная запись в сектор диска является исключительно опасной, так как в этом случае не выполняется дескриптор файла Windows XP. Логическая структура диска может быть повреждена при вводе неверного значения.

Примеры

Чтобы записать содержимое области памяти, начиная с адреса CS:100, на диск B и собрать данные из 2Bh секторов, начиная с логического сектора диска под номером 37h, введите следующую команду:

wcs:100 1 37 2b

После окончания операции записи выводится приглашение программы debug.

Debug: xa (allocate expanded memory)

Выделение заданного количества страниц памяти EMS. Выполненная без параметров подкоманда xa проверяет наличие или отсутствие поддержки дополнительной памяти (EMS).

Синтаксис

xa [число_страниц]

Параметры

число_страниц

Задание числа выделяемых страниц памяти EMS. Размер страницы составляет 16 килобайт.

?

Вывод списка подкоманд debug.

Примечания

  • Система Windows XP не поддерживает память EMS. Для использования памяти EMS на компьютере должен быть установлен драйвер памяти EMS, поддерживающий версию 4.0 спецификации Lotus/Intel/Microsoft Expanded Memory Specification (LIM EMS).
  • Если запрашиваемое количество страниц доступно, Debug.exe выводит сообщение о шестнадцатеричном номере созданного дескриптора. В противном случае выводится сообщение об ошибке.

Примеры

Чтобы выделить восемь страниц дополнительной памяти, введите следующую команду:

xa8

Если команда успешно выделит память, выводятся следующие сведения:

Создан дескриптор=0003

Debug: xd (deallocate expanded memory)

Освобождение дескриптора памяти EMS. Выполненная без параметров подкоманда xd проверяет наличие или отсутствие поддержки дополнительной памяти (EMS).

Синтаксис

xd [дескриптор]

Параметры

дескриптор

Задание освобождаемого дескриптора.

?

Вывод списка подкоманд debug.

Примечания

  • Система Windows XP не поддерживает память EMS. Для использования памяти EMS на компьютере должен быть установлен драйвер памяти EMS, поддерживающий версию 4.0 спецификации Lotus/Intel/Microsoft Expanded Memory Specification (LIM EMS).

Примеры

Чтобы освободить дескриптор 0003, введите следующую команду:

xd 0003

При успешном выполнении программы Debug.exe будет выведено сообщение:

Дескриптор 0003 освобожден

Debug: xm (мар expanded memory pages)

Отображение логической страницы памяти EMS, соответствующей заданному дескриптору, в физическую страницу памяти EMS. Выполненная без параметров подкоманда xm проверяет наличие или отсутствие поддержки памяти EMS.

Синтаксис

xm [лог_страница] [физ_страница] [дескриптор]

Параметры

лог_страница

Задание номера логической страницы памяти EMS, которая будет отображена в физическую страницу физ_страница.

физ_страница

Задание номера физической страницы памяти EMS, в которую будет отображена логическая страница лог_страница.

дескриптор

Задание дескриптора.

?

Вывод списка подкоманд debug.

Примечания

  • Система Windows XP не поддерживает память EMS. Для использования памяти EMS на компьютере должен быть установлен драйвер памяти EMS, поддерживающий версию 4.0 спецификации Lotus/Intel/Microsoft Expanded Memory Specification (LIM EMS).

Примеры

Чтобы отобразить логическую страницу 5 дескриптора 0003 в физическую страницу 2, введите следующую команду:

xm 5 2 0003

При успешном выполнении программы Debug.exe будет выведено сообщение:

Логическая страница 05 отображена на физическую страницу 02

Debug: xs (display expanded memory status)

Вывод сведений о состоянии памяти EMS.

Синтаксис

xs

Параметры

?

Вывод списка подкоманд debug.

Примечания

  • Для использования памяти EMS на компьютере должен быть установлен драйвер памяти EMS, поддерживающий версию 4.0 спецификации Lotus/Intel/Microsoft Expanded Memory Specification (LIM EMS).
  • Результаты программы Debug.exe выводятся в следующем формате:

Для дескриптора xx выделено xx страниц
Физическая страница xx = Сегмент EMS xx
Выделено xx из xx страниц EMS
Выделено xx из xx дескрипторов EMS

Примеры

Чтобы вывести сведения о состоянии памяти EMS, введите следующую команду:

xs

Подкоманда xs выводит сведения в следующем виде:

    Handle 0000 has 0000 pages allocated 
    Для дескриптора 0001 выделено 0002 страниц
 
    Физическая страница 00 = Сегмент EMS C000
    Физическая страница 01 = Сегмент EMS C400
    Физическая страница 02 = Сегмент EMS C800
    Физическая страница 03 = Сегмент EMS CC00
       Выделено  2 из 80 страниц EMS
       Выделено 2 из FF дескрипторов EMS 

Задание текста для вывода на экран.

/?

Отображение справки в командной строке.

Примечания

·        Команда echo сообщение может оказаться полезной, если отключен режим отображения работы команд. Для вывода сообщений из нескольких строк без вывода дополнительных команд между ними следует использовать несколько последовательных команд echo сообщение после команды echo off в пакетной программе.

·        Если используется команда echo off, приглашение командной строки не отображается на экране. Чтобы отобразить приглашение, введите команду echo on.

·        Чтобы отключить вывод строк, введите символ «коммерческого эт» (@) перед командой в пакетном файле.

·        Чтобы вывести на экране пустую строку, введите следующую команду:

echo.

·        Чтобы вывести символы канала (|) или перенаправления (< или >) при использовании команды echo, введите символ (^) непосредственно перед символом канала или перенаправления (например ^>, ^< или ^| ). Чтобы вывести символ (^), введите два этих символа подряд (^^).

Примеры

Следующий пример представляет собой пакетный файл, выводящий сообщение из трех строк на экран с пустыми строками до и после него:

echo off
echo.
echo Эта пакетная программа
echo форматирует и проверяет
echo новые диски
echo.

Если требуется отключить режим отображения команд и при этом не выводить на экран строку самой команды echo, введите символ @ перед командой:

@echo off

Оператор if и команду echo можно использовать в одной командной строке: Например:

if exist *.rpt echo Отчет получен.


 

Echoconfig     (Содержание)

Вывод сообщений в процессе обработки файлов сведений о программах Config.nt и Autoexec.nt подсистемы MS-DOS. Если данная команда отсутствует, сообщения не выводятся.

Параметры

отсутствуют

Примечания

·        Данную команду нужно указать в файле Config.nt подсистемы MS-DOS. Следующий пример иллюстрирует содержимое файла Config.nt.

dos=high,umb
device=%systemroot%\system32\himem.sys
files=40
echoconfig


 

Edit     (Содержание)

Edit

Запуск редактора MS-DOS, который позволяет создавать и редактировать текстовые файлы в формате ASCII. Использование данной команды без параметров приводит к запуску редактора MS-DOS.

Синтаксис

edit [[диск:][путь] имя_файла] [/b] [/g] [/h] [/nohi]

Параметры

[диск:][путь] имя_файла

Задает местонахождение и имя текстового файла. Если файл не существует, редактор MS-DOS создаст его. Если файл существует, редактор MS-DOS откроет его и выведет содержимое на экран.

/b

Устанавливает черно-белый режим работы редактора MS-DOS. Этот параметр следует выбирать в случае, когда редактор MS-DOS неправильно отображается на черно-белом мониторе.

/g

Задает режим наиболее быстрого обновления экрана при работе с монитором CGA.

/h

Задает режим вывода максимального количества строк для используемого монитора.

/nohi

Разрешает работу редактора MS-DOS в восьмицветном режиме. Как правило, Windows XP использует шестнадцатицветный режим.

/?

Отображает справку в командной строке.

Примечания

·        Некоторые мониторы по умолчанию не поддерживают отображение клавиш быстрого вызова. В этом случае нужно использовать ключ /b (для мониторов CGA) и ключ /nohi (для систем, не поддерживающих выделение символов на экране полужирным шрифтом).


 

Endlocal     (Содержание)

Окончание использования локального окружения в пакетной программе, восстановление значений переменных среды, имевшихся до выполнения соответствующей команды setlocal.

Синтаксис

endlocal

Параметры

/?

Отображение справки в командной строке.

Примечания

·        Команду endlocal необходимо указать в сценарии и пакетном файле. Команда endlocal не выполняется при использовании вне сценария или пакетного файла.

·        В конце пакетного файла присутствует неявная команда endlocal.

·        Если расширения командного процессора разрешены (установлено по умолчанию), команда endlocal восстанавливает состояния (т. е. разрешение или запрещение) расширений команд, существовавшие до выполнения соответствующей команды setlocal.

Примеры

В пакетном файле можно локально изменить переменные среды. Например:

@echo off

rem Эта программа запускает приложение superapp в сети,

rem записывает вывод в файл и загружает этот файл в программу

rem Блокнот.

setlocal

path=g:\programs\superapp;%path%

call superapp>c:\superapp.out

endlocal

start notepad c:\superapp.out


 

Eventcreate     (Содержание)

Позволяет администратору создать особое событие в указанном журнале событий.

Синтаксис

eventcreate [/s компьютер [/u домен\пользователь [/p пароль]] {[/l {APPLICATION|SYSTEM}]|[/so имя_источника]} /t {ERROR|WARNING|INFORMATION|SUCCESSAUDIT|FAILUREAUDIT} /id код_события /d описание

Параметры

/s компьютер

Задание имени или IP-адреса удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.

/u домен\пользователь

Выполнение команды с разрешениями учетной записи пользователя, заданного в параметре пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.

/p пароль

Указание пароля учетной записи пользователя, заданной параметром /u.

/l {APPLICATION|SYSTEM}

Задание имени журнала событий, в котором будет создано данное событие. Для журнала событий допустимыми являются имена APPLICATION и SYSTEM.

/so имя_источника

Задание источника, используемого для данного события. Допустимый источник может быть представлен любой строкой и должен указывать на приложение или компонент, в котором произошло событие.

/t {ERROR|WARNING|INFORMATION|SUCCESSAUDIT|FAILUREAUDIT}

Задание типа создаваемого события. Допустимыми являются следующие типы: ERROR, WARNING, INFORMATION, SUCCESSAUDIT и FAILUREAUDIT.

/id код_события

Задание кода события. Допустимым кодом может быть любое число от 1 до 65535.

/d описание

Задание описания для вновь создаваемого события.

/?

Отображение справки в командной строке.

Примечания

·        Особые события не заносятся в журнал безопасности.

Примеры

Далее приведены примеры использования команды eventcreate:

eventcreate /t error /id 100 /l application /d

"Создание события в журнале приложения"
eventcreate /t information /id 1000 /so winmgmt /d

"Создание события в источнике WinMgmt"
eventcreate /t error /id 2001 /so winword /l application /d

"новый источник Winword в журнале приложений"
eventcreate /s server /t error /id 100 /l application /d

"Удаленный компьютер без учетных данных пользователя"
eventcreate /s server /u user /p password /id 100 /t error /l application /d

"Удаленный компьютер с учетными данными пользователя"
eventcreate /s server1 /s server2 /u user /p password /id 100 /t error /so winmgmt /d

"Создание событий на нескольких удаленных компьютерах"
eventcreate /s server /u user /id 100 /t warning /so winmgmt /d

"Удаленный компьютер с частью учетных данных пользователя"


 

Eventquery     (Содержание)

Вывод списка событий и их свойств из одного или нескольких журналов событий.

Параметры

/s компьютер

Задание имени или IP-адреса удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.

/u домен\пользователь

Выполнение сценария с разрешениями учетной записи пользователя, заданного в параметре пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.

/p пароль

Указание пароля учетной записи пользователя, заданной параметром /u.

/fi имя_фильтра

Задание типов событий, которые следует включить в запрос или исключить из него. Чтобы найти события с каким-то значением, фильтры Type и ID можно использовать совместно в одной инструкции с помощью оператора or. Допустимыми именами фильтров, операторами и значениями являются следующие.

Имя

Оператор

Значение

Datetime

eq, ne, ge, le, gt, lt

мм/дд/гг(гггг), чч:мм:ссAM(/PM)

Type

eq, ne, or

{ERROR|INFORMATION|WARNING|SUCCESSAUDIT|FAILUREAUDIT}

ID

eq, ne, or, ge, le, gt, lt

Любое допустимое положительное число

User

eq, ne

Любая допустимая строка

Computer

eq, ne

Любая допустимая строка

Source

eq, ne

Любая допустимая строка

Category

eq, ne

Любая допустимая строка

/fo {TABLE|LIST|CSV}

Задание формата выходных данных. Допустимые значения: table, list и csv.

/r диапазон_событий

Задание диапазона событий, включаемых в список.

Значение

Описание

N

Включение в список последних событий, количество которых задается параметром N.

-N

Включение в список самых старых событий, количество которых задается параметром N.

N1-N2

Включение в список событий с N1 по N2.

/nh

Запрещение вывода заголовков столбцов. Этот параметр является допустимым при задании форматов table и csv.

/v

Задание отображения подробных сведений о событиях в выходных данных.

/l [APPLICATION] [SYSTEM] [SECURITY] ["DNS server"] [заданный_пользователем_журнал] [имя_журнала_каталога] [*] ]

Задание журналов для просмотра. Допустимые значения: Application, System, Security, "DNS server", заданный пользователем журнал и журнал каталога. Значение "DNS server" является допустимым только в том случае, если на компьютере, заданном параметром /s, запущена служба DNS. Чтобы задать несколько журналов для просмотра, повторно воспользуйтесь параметром /l. Допускается использование подстановочного знака (*), который указывается по умолчанию.

/?

Отображение справки в командной строке.

Примечания

·        Чтобы выполнить данный сценарий, необходимо запустить CScript. Если программа CScript не является используемым по умолчанию сервером сценариев Windows, введите следующую команду:

cscript //h:cscript //s //nologo

Примеры

Далее приведены примеры использования команды eventquery:

eventquery /l system
eventquery /l mylog
eventquery /l application /l system
eventquery /s srvmain /u maindom\hiropln /p p@ssW23 /v /l *
eventquery /r 10 /l application /nh
eventquery /r -10 /fo LIST /l security
eventquery /r 5-10 /l "DNS server"
eventquery /fi "Type eq Error" /l application
eventquery /fi "Datetime eq 06/25/00,03:15:00AM/06/25/00,03:15:00PM" /l application
eventquery /fi "Datetime gt 08/03/00,06:20:00PM" /fi "id gt 700" /fi "Type eq warning" /l system eventquery /fi "ID eq 1000 OR ID ge 4500" eventquery /fi "Type eq error OR Type eq INFORMATION" eventquery /fi "ID eq 250 OR Type eq ERROR"


 

Eventtriggers     (Содержание)

Вывод и настройка триггеров событий на локальном или удаленном компьютере.

Создание нового триггера событий, который отслеживает выполнение определенных условий в журнале событий и действует в соответствии с ними.

Синтаксис

eventtriggers[.exe] /create [/s компьютер [/u домен\пользователь [/p пароль]]] /tr имя_триггера [/l [APPLICATION] [SYSTEM] [SECURITY] ["DNS Server"] [LOG] [имя_журнала_каталога] [*] ] {[/eid код]|[/t {ERROR|INFORMATION|WARNING|SUCCESSAUDIT|FAILUREAUDIT}]|[/so источник]} [/d описание] /tk имя_задания [/ru {[домен\]пользователь | "System"} [/rp пароль]]

Параметры

/s компьютер

Задание имени или IP-адреса удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.

/u домен\пользователь

Выполнение команды с разрешениями учетной записи пользователя, заданного в параметре пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.

/p пароль

Указание пароля учетной записи пользователя, заданной параметром /u.

/tr имя_триггера

Задание понятного имени для триггера событий.

/l [APPLICATION] [SYSTEM] [SECURITY] ["DNS Server"] [LOG] [имя_журнала_каталога] [*] ]

Задание журналов для просмотра. Допустимые типы: Application, System, Security, DNS server, Log и журнал каталога. Допускается использование подстановочного знака (*), который указывается в качестве значения по умолчанию.

/eid код

Задание кода определенного события, которое требуется отслеживать с помощью триггера событий. Допустимым значением является любое целое число. Этот параметр нельзя использовать вместе с параметрами /type или /so.

/t {ERROR|INFORMATION|WARNING|SUCCESSAUDIT|FAILUREAUDIT}

Задание типа события, которое требуется отслеживать с помощью триггера событий. Допускаются следующие значения: ERROR, INFORMATION, WARNING, SUCCESSAUDIT и FAILUREAUDIT. Этот параметр нельзя использовать вместе с параметрами /id или /so.

/so источник

Задание источника события, которое требуется отслеживать с помощью триггера событий. Допустимым значением является любая строка. Этот параметр нельзя использовать вместе с параметрами /id или /type.

/d описание

Задание вывода подробного описания триггера событий. Допустимым значением является любая строка.

/tk имя_задания

Указание задания, команды или строки, выполняемых при соблюдении условий триггера событий.

/ru {[домен\]пользователь | "System"}

Выполнение заданий с разрешениями указанной учетной записи пользователя. По умолчанию задание выполняется с разрешениями пользователя, вошедшего в компьютер, на котором запущена программа SchTasks.

/rp пароль

Указание пароля учетной записи пользователя, заданной параметром /ru. Если при указании учетной записи пропущен пароль, программа SchTasks.exe запросит пароль и скроет вводимый текст. Для заданий, выполняемых с разрешениями учетной записи NT Authority\System, не требуется пароль и программа SchTasks.exe его не запрашивает.

/?

Отображение справки в командной строке.

Синтаксис

eventtriggers[.exe] /delete [/s компьютер [/u домен\пользователь [/p пароль]]] /tid {код|*}

Параметры

/s компьютер

Задание имени или IP-адреса удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.

/u домен\пользователь

Выполнение команды с разрешениями учетной записи пользователя, заданного в параметре пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.

/p пароль

Указание пароля учетной записи пользователя, заданной параметром /u.

/tid {код|*}

Задание кодов удаляемых триггеров событий. Допускается использование подстановочного знака (*).

/?

Отображение справки в командной строке.

Примеры

Далее приведены примеры использования команды eventtriggers /delete:

eventtriggers /delete /tid 1 /tid 2 /tid 4 /tid 6
eventtriggers /delete /s srvmain /u maindom\hiropln /p p@ssW23 /tid *
eventtriggers /delete /s srvmain /u maindom\hiropln /p p@ssW23 /tid 1

Запрос и отображение свойств и параметров триггера событий системы.

Синтаксис

eventtriggers[.exe] /query [/s компьютер [/u домен\пользователь [/p пароль]]] [/fo {TABLE|LIST|CSV}] [/nh] [/v]

Параметры

/s компьютер

Задание имени или IP-адреса удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.

/u домен\пользователь

Выполнение команды с разрешениями учетной записи пользователя, заданного в параметре пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.

/p пароль

Указание пароля учетной записи пользователя, заданной параметром /u.

/fo {TABLE|LIST|CSV}

Задание формата выходных данных запроса. Допустимые значения: TABLE, LIST и CSV. По умолчанию для выходных данных используется формат TABLE.

/nh

Запрещение вывода заголовка столбца. Данный параметр является допустимым, если параметр /fo имеет значение TABLE или CSV.

/v

Задание вывода подробных сведений в выходных данных.

/?

Отображение справки в командной строке.

Примеры

Далее приведены примеры использования команды eventtriggers /query:

eventtriggers /query
eventtriggers /query /s srvmain
eventtriggers /query /s srvmain /u maindom\hiropln /p p@ssW23 /fo list

Примечания

·        Выполненная без операторов команда eventtriggers возвращается список триггеров событий. Чтобы вывести список триггеров событий, введите следующую команду:

eventtriggers

Вывод будет иметь следующий вид:

 
ID триггера Имя триггера событий         Задание
========== ========================== ================================
         1 Очистка диска               c:\windows\system32\cleanmgr.exe

·        Если событие не удается выполнить, команда eventtriggers создает файл журнала TriggerConsumer.log, содержащий сообщение об ошибке триггера, в каталоге \windows\system32\wbem\logs.


 

Evntcmd     (Содержание)

Настройка преобразования событий в ловушки и/или в адреса назначения ловушки в файле конфигурации.

Синтаксис

evntcmd [/s ИмяКомпьютера] [/v УровеньОбъемаСведений] [/n] ИмяФайла

Параметры

/s ИмяКомпьютера

Имя компьютера, на котором требуется настроить преобразование событий в ловушки и/или адреса назначения ловушки. Если компьютер не указан, настройка производится на локальном компьютере.

/v УровеньОбъемаСведений

Типы сообщений состояния, отображающиеся в качестве настроенных ловушек и адресов назначения ловушек. Данный параметр должен быть целым числом от 0 до 10. Если указано число 10, то отображаются все типы сообщений, включая сообщения отслеживания и предупреждения о настройке ловушки. Если указано число 0, сообщения не отображаются.

/n

Служба SNMP не должна перезапускаться, если на данный компьютер получены изменения настройки ловушки.

ИмяФайла

Имя файла, который содержит сведения о преобразовании событий в настраиваемые ловушки и адреса назначения ловушки.

/?

Отображает справку в командной строке.

Заметки

·        Если требуется настроить ловушки, но не адреса назначения ловушки, можно создать допустимый файл конфигурации с помощью трансляции событий в ловушки, которая является графической утилитой. Если установлена служба SNMP, трансляцию событий в ловушки можно запустить, набрав в командной строке evntwin. После определения необходимых ловушек нажмите кнопку Экспорт, чтобы создать файл, который можно использовать с evntcmd. Трансляцию событий в ловушки можно использовать для легкого создания файла конфигурации и последующего использования файла конфигурации с evntcmd в командной строке для быстрой настройки ловушек на нескольких компьютерах.

·        Для настройки ловушки используется следующий синтаксис:

#pragma ADD ФайлЖурналаСобытий ИсточникСобытия КодСобытия [Счетчик [Период]]

o       текст #pragma должен отображаться в начале каждой записи в файле;

o       параметр ADD указывает, что требуется добавить событие в настройку ловушки;

o       параметры ФайлЖурналаСобытий, ИсточникСобытия и КодСобытия являются обязательными. Параметр ФайлЖурналаСобытий указывает файл, в который записывается событие. Параметр ИсточникСобытия указывает приложение, которое создает событие. Параметр КодСобытия указывает уникальный номер, определяющий каждое событие. Чтобы определить, какие значения соответствуют конкретному событию запустите трансляцию событий в ловушки, набрав в командной строке evntwin. Нажмите кнопку Настройка, а затем кнопку Изменить. В области Источники событий просмотрите папки, пока не найдете событие, которое требуется настроить, щелкните событие, а затем нажмите кнопку Добавить. Сведения об источнике события, файл журнала события и код события соответственно отображаются в областях Источник, Журнал и Код ловушки;

o       параметр Счетчик является необязательным; он указывает количество событий перед отправкой сообщения ловушки. Если параметр Счетчик не используется, сообщения ловушки отправляется после первого событие;

o       параметр Период является необязательным, но он требует использования параметра Счетчик. Параметр Период указывает продолжительность времени (в секундах), в течение которого событие должно произойти число раз, указанное в параметре Счетчик, перед отправкой сообщения ловушки. Если параметр Период не используется, сообщение ловушки отправляется после того, как событие произойдет число раз, указанное в параметре Счетчик, не зависимо от того, сколько времени прошло между событиями.

·        Для удаления ловушки используется следующий синтаксис:

#pragma DELETE ФайлЖурналаСобытий ИсточникСобытия КодСобытия

o       текст #pragma должен отображаться в начале каждой записи в файле;

o       параметр DELETE указывает, что требуется удалить событие из настройки ловушки;

o       параметры ФайлЖурналаСобытий, ИсточникСобытия и КодСобытия являются обязательными. Параметр ФайлЖурналаСобытий указывает журнал, в который записывается событие. Параметр ИсточникСобытия указывает приложение, которое создает событие. Параметр КодСобытия указывает уникальный номер, определяющий каждое событие.

·        Для настройки адреса назначения ловушки используется следующий синтаксис:

#pragma ADD_TRAP_DEST ИмяСообщества НомерУзла

o       текст #pragma должен отображаться в начале каждой записи в файле;

o       параметр ADD_TRAP_DEST указывает, что требуется отправить сообщения ловушки на конкретный узел внутри сообщества;

o       параметр ИмяСообщества указывает по имени сообщество, в которое отправляется сообщение ловушки;

o       параметр НомерУзла указывает по имени или IP-адресу узел, на который требуется отправить сообщения ловушки.

·        Для удаления адреса назначения ловушки используется следующий синтаксис:

#pragma DELETE_TRAP_DEST ИмяСообщества НомерУзла

o       текст #pragma должен отображаться в начале каждой записи в файле;

o       параметр DELETE_TRAP_DEST указывает, что не требуется отправлять сообщения ловушки на конкретный узел внутри сообщества;

o       параметр ИмяСообщества указывает по имени сообщество, в которое отправляются сообщения ловушки;

o       параметр НомерУзла указывает по имени или IP-адресу узел, на который не требуется отправлять сообщения ловушки.

Примеры

Следующие примеры показывают записи в файле конфигурации для команды evntcmd. Они не могут быть введены в командной строке.

Чтобы отправить сообщение ловушки, если служба журнала событий перезапускается, введите:

#pragma ADD System "Eventlog" 2147489653

Чтобы отправить сообщение ловушки, если служба журнала событий перезапускается дважды за три минуты, введите:

#pragma ADD System "Eventlog" 2147489653 2 180

Чтобы остановить отправку сообщения ловушки, когда бы ни перезапускалась служба журнала событий, введите:

#pragma DELETE System "Eventlog" 2147489653

Чтобы отправить сообщения ловушки в сообщество с названием «Public» на узел с IP-адресом 192.168.100.100, введите:

#pragma ADD_TRAP_DEST public 192.168.100.100

Чтобы отправить сообщения ловушки в сообщество с названием «Private» на узел с названием «Host1», введите:

#pragma ADD_TRAP_DEST private Host1

Чтобы остановить отправку сообщений ловушки в сообщество с названием «Private» на тот же компьютер, на котором настраиваются адреса назначений ловушки, введите:

#pragma DELETE_TRAP_DEST private localhost


 

Exe2bin     (Содержание)

Преобразование исполняемых файлов (.exe) в двоичный формат.

Синтаксис

exe2bin [диск1:][путь1]ФайлВвода [[диск2:][путь2]ВыходнойФайл]

Параметры

[диск1:][путь1]ФайлВвода

Местонахождение и имя файла ввода, который требуется преобразовать. Параметр ФайлВвода является обязательным.

[диск2:][путь2]ВыходнойФайл

Местонахождение и имя выходного файла, который требуется создать.

/?

Отображение справки в командной строке.

Заметки

·        Программа Exe2bin включена для помощи разработчикам программ. Она не предназначена для обычных пользователей.

·        При использовании команды exe2bin имеют место следующие ограничения:

o       входной файл должен быть в корректном .exe формате, полученном после компоновки и не должен быть упакованным;

o       резидентная или действующая (код и данные) часть файла не должны превышать объема в 64Кб;

o       в файле не должно быть сегмента stack.

·        Программа Exe2bin выполняет конкретные действия, в зависимости от значений параметров ФайлВвода и ВыходнойФайл:

o       по умолчанию для параметра ФайлВвода используется расширение .exe. Программа Exe2bin преобразует ФайлВвода .exe в файл с двоичным форматом .bin (образ программы в памяти) и использует местоположение и имя, заданные параметрами [диск2:][путь2]ВыходнойФайл для хранения выходного файла;

o       если не заданы диск2 или путь2, программа exe2bin записывает выходной файл на текущий диск и в текущий каталог;

o       если имя файла для параметра ВыходнойФайл не указано, программа exe2bin использует имя файла параметра ФайлВвода;

o       по умолчанию для имени файла, указанного для параметра ВыходнойФайл, используется расширение .bin.

·        Поддерживаются следующие типы преобразования:

o       если значения CS:IP не заданы в .exe файле, exe2bin выполняет чисто двоичное преобразование. Если программа содержит инструкции, требующие отзыва сегмента, exe2bin запрашивает значение исправления. Это значение исправления является абсолютным адресом сегмента, в который должна быть загружена программа. Итоговая программа может быть использована, только будучи загруженной по этому адресу, задаваемому вызывающей программой. Командный интерпретатор не сможет загрузить такую программу;

o       если значения сегментов CS:IP установлены в 0000:100H, итоговый двоичный файл будет вызываться как .com файл с указателем инструкций, установленным в 100H ассемблерной командой ORG. Включите расширение .com в параметр ВыходнойФайл. Исправления сегментов не разрешены, поскольку файлы с расширением .com должны иметь возможность перемещения сегментов. Файлы с расширением .com должны принимать условия ввода, изложенные в документации Microsoft Macro Assembler. Командный интерпретатор будет загружать и запускать программу так же, как и обычные .com программы, поставляемые на диске Windows XP.


 

Exit     (Содержание)

Выход из текущего пакетного сценария или из программы Cmd.exe (командный интерпретатор) и возвращение в программу, запустившую Cmd.exe или в диспетчер программ.

Синтаксис

exit [/b] [КодВыхода]

Параметры

/b

Выход из текущего пакетного сценария.

КодВыхода

Число.

/?

Отображение справки в командной строке.

Заметки

·        Если /b используется вне пакетного сценария, то выход осуществляется из Cmd.exe.

·        Если используется /b, то Cmd.exe устанавливает ERRORLEVEL в указанный КодВыхода. При выходе из Cmd.exe, Cmd.exe устанавливает код процесса выхода вместе с параметром КодВыхода.


 

Expand     (Содержание)

Expand

Восстановление одного или нескольких сжатых файлов. Эта команда используется для развертывания уплотненных файлов с дистрибутивных дисков.

Синтаксис

expand [-r] Источник [Результат]

expand -d источник.cab [-f:файлы]

expand источник.cab -f:файлы Результат

Параметры

-r

Переименовывает развернутые файлы.

-d

Выводит список файлов в местоположении источника. Не производит распаковки или выделения файлов.

-f:файлы

Указывает файлы в cab-файле, которые необходимо распаковать. Можно использовать подстановочные символы (* and ?).

Источник

Задает файл, который должен быть развернут. Параметр источник может состоять из имени диска с двоеточием, имени папки, имени файла или их комбинации. Можно использовать подстановочные символы (* and ?).

Назначение

Задает, куда помещать развернутые файлы. Если параметр Источник задает несколько файлов и ключ -r не задан, Результат должен быть каталогом. Параметр результат может состоять из имени диска с двоеточием, имени каталога, имени файла или их комбинации.

/?

Отображение справки в командной строке.

Заметки

·        Использование команды expand в консоли восстановления

Команда expand с другими


 

Fc     (Содержание)

параметрами доступна в консоли восстановления.

Сравнение двух файлов и вывод различий между ними.

Синтаксис

fc [/a] [/b] [/c] [/l] [/lbn] [/n] [/t] [/u] [/w] [/nnnn] [диск1:][путь1]имяфайла1 [диск2:][путь2]имяфайла2

Параметры

/a

Задает сокращенный вывод ASCII сравнения. Вместо вывода фсех различающихся строк, fc выводит только начальную и конечную строки отличающихся участков.

/b

Сравнивает файлы в двоичном режиме. Команда fc сравнивает два файла байт за байтом и не пытается сопоставить файлы после найденного отличия. Этот режим используется по умолчанию для сравнения файлов с расширениями: .exe, .com, .sys, .obj, .lib или .bin.

/c

Сравнивает без учета заглавных и строчных букв.

/l

Сравнивает файлы в текстовом (ASCII) режиме. Команда fc сравнивает два файла строка за строкой и пытается сопоставить их, после того как найдено отличие. Этот режим используется по умолчанию для сравнения файлов, исключая файлы со следующими расширениями: .exe, .com, .sys, .obj, .lib или .bin.

/lbn

Задает количество строк n для внутреннего буфера. По умолчанию длина буфера составляет 100 строк. Если количество отличающихся строк в сравниваемых файлах превышает это число, команда fc прекращает сравнение.

/n

Задает вывод номеров строк при сравнении в текстовом режиме.

/t

Предотвращение fc от преобразования меток табуляции в пробелы. По умолчанию табуляторы заменяются пробелами с остановкой в каждой восьмой позиции.

/u

Задает сравнение файлов в текстовом формате Юникод.

/w

Задает сжатие пробелов и табуляций при сравнении. Если в строке содержится несколько пробелов или табуляций подряд, при использовании ключа /w они будут рассматриваться как один. Когда используется ключ /w, программа fc игнорирует (и не сравнивает) пробелы и табуляции в начале и в конце строки.

/nnnn

Задает количество совпадающих строк, используемых программой fc при новом сопоставлении файлов. Если количество совпадающих строк в файле меньше nnnn, программа fc будет выводить совпадающие строки как отличающиеся. По умолчанию значение равно 2.

[диск1:][путь1]имяфайла1

Задает местоположение и имя первого файла для сравнения. Параметр имяфайла1 является обязательным.

[диск2:][путь2]имяфайла2

Задает местоположение и имя второго файла для сравнения. Параметр имяфайла2 является обязательным.

/?

Отображение справки в командной строке.

Заметки

·        Вывод различий между файлами при текстовом сравнении в формате ASCII

При использовании программы fc для сравнения ASCII, fc отображает различия между двумя файлами в следующем порядке:

o       имя первого файла;

o       строки из параметра имяфайла1, которые отличаются в файлах;

o       первая строка, совпадающая в обоих файлах;

o       имя второго файла;

o       отличающиеся строки из параметра имяфайла2;

o       первая строка совпадения.

·        Использование /b для двоичного сравнения

/b отображает несоответствия, найденные в течение двоичного сравнения, как показано ниже.

xxxxxxxx: yy zz

Величина xxxxxxxx задает относительный шестнадцатеричный адрес пары различающихся байтов, отсчитываемый от начала файла. Адресация начинается с 00000000. Шестнадцатеричные величины yy и zz представляют различающиеся байты из имяфайла1 и имяфайла2 соответственно.

·        Использование подстановочных знаков

Можно использовать подстановочные знаки (* and ?) в параметрах имяфайла1 и имяфайла2. Если они использованы при задании первого файла имяфайла1, программа fc будет сравнивать все заданные файлы с файлом, указанным в параметре ИмяФайла. Если подстановочные знаки использованы при задании файла имяфайла2, fc при сравнении будет использовать соответствующие значения параметра имяфайла1.

·        Работа с памятью

При сравнении в текстовом режиме программа fc использует внутренний буфер (достаточный для размещения 100 строк). Если размер файлов больше размера буфера, программа fc будет сравнивать те части, которые поместились в буфер. Если fc не обнаруживает совпадения в загруженных частях файлов, программа остановится и будет выведено следующее сообщение:

Не удается выполнить синхронизацию строк. Слишком много различий между файлами.

Если же выполняется двоичное сравнение и размер файлов превосходит размер доступной памяти, fc выполняет сравнение полностью. При необходимости, файлы будут считываться с диска по частям. Вывод команды при этом не будет отличаться от вывода в случае полного размещения файлов в памяти.

Примеры

Чтобы сравнить два текстовых файла с именами Monthly.rpt и Sales.rpt и вывести результат в сокращенном формате, введите:

fc /a monthly.rpt sales.rpt

Для двоичного сравнения двух пакетных файлов Profits.bat и Earnings.bat введите:

fc /b profits.bat earnings.bat

Результат будет иметь следующий вид:

00000002: 72 43
00000004: 65 3A
0000000E: 56 92
00000012: 6D 5C
00000013: 0D 7C
00000014: 0D 0A
00000015: 0A 0D
0000001E: 43 7A
0000001F: 09 0A
00000022: 72 44
...
...
...
000005E0: 00 61
000005E1: 00 73
000005E2: 00 73
000005E3: 00 69
000005E4: 00 67
000005E5: 00 6E
000005E6: 00 6D
000005E7: 00 65
000005E8: 00 6E
FC: Earnings.bat длиннее, чем Profits.bat

Если файлы Profits.bat и Earnings.bat одинаковы, fc выводит на экран следующее сообщение:

FC: различия не найдены

Для сравнения каждого файла .bat в текущем каталоге с файлом New.bat введите:

fc *.bat new.bat

Для сравнения файла New.bat на диске C с файлом New.bat на диске D введите:

fc c:new.bat d:*.bat

Для сравнения каждого пакетного файла в корневом каталоге диска C с файлом с таким же именем в корневом каталоге на диске введите:

fc c:*.bat d:*.bat


 

Fcbs     (Содержание)

Задание числа блоков управления файлом (FCB), которые могут быть одновременно открыты подсистемой MS-DOS. Для указания числа FCB используйте файл системный_корневой_каталог\System32\Config.nt или эквивалентный файл запуска, заданный в PIF-файле.

Синтаксис

fcbs=x

Параметры

x

Обязательный параметр. Задает число блоков управления, которые подсистема MS-DOS может открыть одновременно. Допустимыми являются значения x от 1 до 255. Значение по умолчанию равно 4.

/?

Отображение справки в командной строке.

Заметки

·        Блок управления файлом является структурой данных, в которой хранится информация о файле.

·        Если программа пытается открыть более x файлов с использованием блоков управления файлом, подсистема MS-DOS может закрыть файлы, которые были открыты ранее.

·        Следует использовать команду fcbs только тогда, когда этого требует какая-либо программа. Большинство современных программ не требуют использования блоков управления файлом. Однако для работы некоторых старых программ требуется поместить команду fcbs в файл Config.nt.

Примеры

Чтобы разрешить подсистеме MS-DOS открывать до восьми файлов одновременно с использованием блоков управления файлом, в файл Config.nt необходимо включить следующую команду:

fcbs=8


 

Files     (Содержание)

Задание количества файлов, к которым подсистема MS-DOS может иметь доступ одновременно. Для указания параметра файлы используйте файл системный_корневой_каталог\System32\Config.nt или эквивалентный файл запуска, заданный в PIF-файле.

Синтаксис

files=x

Параметры

x

Обязательный параметр. Указание количества файлов, к которым подсистема MS-DOS может иметь доступ одновременно. Допустимыми являются значения x от 8 до 255. Значение по умолчанию равно 8.

/?

Отображение справки в командной строке.

Заметки

·        Хотя значение по умолчанию x равно 8, некоторые программы требуют большего значения. Типовым значением является 20.

Примеры

Чтобы разрешить подсистеме MS-DOS иметь доступ одновременно к 20 файлам, в файл Config.nt должна быть включена следующая команда:

files=20


 

Использование фильтров     (Содержание)

Фильтр команды используется с символом перенаправления канала команды (|) и является командой внутри команды, которая считывает ввод команды, преобразовывает ввод, а затем записывает выход. Команды-фильтры дают возможность сортировать, просматривать и отбирать часть выходной информации других команд.

Фильтры делят, переупорядочивают или выделяют отдельные части из проходящей через них информации. В приведенной ниже таблице перечислены команды- фильтры.

Для направления данных из файла на вход фильтра используется символ «меньше» (<). Для направления на вход фильтра выхода другой команды используется канал (|).

Использование команды more

Команда more выводит содержимое файла или выхода команды в одном окне командной строки за раз. Например, чтобы отобразить содержимое файла List.txt в одном окне командной строки за раз, введите следующую команду:

more < list.txt

Отображается одно окно командной строки со сведениями, а затем в нижней части окна командной строки отображается строка -- More --. Для перехода к следующему окну командной строки, нажмите любую клавишу на клавиатуре, кроме клавиши PAUSE. Для остановки просмотра следует ввести комбинацию CTRL+C.

Команда more полезна при работе с командами, создающими выход более одного окна командной строки. Например, при выводе дерева каталогов жесткого диска. Если на диске содержится больше каталогов, чем может быть одновременно выведено в окне командной строки, можно использовать команду tree с каналом (|) и команду more.

tree c:\ | more

На экран будет выведен первое окно командной строки с выходом команды tree, а затем отобразится строка -- More --. Выход будет ожидать нажатия любой клавиши для продолжения (кроме клавиши PAUSE).

Использование команды find

Команда find проводит поиск заданной строки или текста в файлах. Команда Cmd.exe отображает каждую строку, которая совпадает со строкой или текстом, указанным в окне коммандной строки. Команда find может быть использована как команда-фильтр и как обычная команда Microsoft Windows XP. Дополнительные сведения об использовании команды find.

Чтобы использовать команду find в качестве команды-фильтра, необходимо включить символ «меньше» (<) и строку или текст, в котором требуется выполнить поиск. По умолчанию при поиске команда find учитывает регистр. Например, следующая команда будет искать строку "Pacific Rim" в файле Trade.txt:

find "Pacific Rim" < trade.txt

Выход не включает вхождение строки "pacific rim". Встречается вхождение строки "Pacific Rim" с прописными буквами.

Для сохранения результатов работы команды find (вместо отображения их в окне командной строки), введите символ «больше» (>) и имя файла, в котором требуется хранить выход. Например, следующая команда ищет строку "Pacific Rim" в файле Trade.txt с сохранением результата в файле Nwtrade.txt:

find "Pacific Rim" < trade.txt > nwtrade.txt

Использование команды sort

Команда sort выполняет сортировку по алфавиту текстового файла или выхода команды. Например, следующая команда сортирует содержимое файла List.txt и отображает результаты в окне командной строки:

sort < list.txt

В этом примере команда sort сортирует строки файла List.txt в алфавитном порядке и выводит результат на экран без изменения файла. Для сохранения результатов работы команды sort (вместо их отображения) введите символ «больше» (>) и имя файла. Например, следующую команду можно использовать для алфавитной сортировки строк файла List.txt и сохранения результатов в файле Alphlist.txt:

sort < list.txt > alphlist.txt

Для сортировки вывода команды следует ввести команду, затем символ канала (|) и команду sort (команда | sort). Например, следующая команда сортирует в алфавитном порядке строки, которые содержат слово "Jones" (вывод команды find):

find "Jones" maillst.txt | sort


 

Find     (Содержание)

Поиск заданной строки текста в файле или нескольких файлах. После поиска в заданных файлах команда find выведет на экран все строки из этих файлов, содержащие заданный образец.

Синтаксис

find [/v] [/c] [/n] [/i] "строка" [[диск:][путь]ИмяФайла[...]]

Параметры

/v

Выводит все строки, не содержащие строку, заданную параметром строка.

/c

Подсчет строк, содержащих строку, указанную параметром строка, и отображение общего количества.

/n

Выводит номера строк перед самими строками.

/i

Задает поиск без различия строчных и заглавных букв.

"строка_поиска"

Обязательный параметр. Указывает группу символов, поиск которой будет производиться. Необходимо заключить параметр строка в кавычки ("строка").

[диск:][путь] ИмяФайла

Задает местоположение и имя файла, в котором будет производиться поиск заданной строки символов.

/?

Отображение справки в командной строке.

Заметки

·        Задание строки

Если ключ /i не указан, команда find ищет именно то, что указано в параметре строка. Например, для команды find символы "a" и "A" являются различными. Если используется ключ /i, команда find не различает строчные и прописные буквы, и символы "a" и "A" являются одинаковыми.

Если строка поиска содержит кавычки, при вызове команды каждая кавычка в строке поиска должна быть заменена двумя символами кавычек ("СтрокаСодержания""Кавычки").

·        Использование команды find в качестве фильтра

Если имя файла пропущено, find действует как фильтр, получая ввод из стандартного источника вывода (обычно клавиатура, канал или файл перенаправления), и выводит все строки, содержащие параметр строка.

·        Порядок синтаксиса команды

Параметры и ключи команды find могут быть заданы в произвольном порядке.

·        Использование подстановочных знаков

Подстановочные знаки (* и ?) не могут быть использованы в именах файлов и расширениях, задаваемых в команде find. Чтобы искать строку в множестве файлов, указанных с помощью подстановочных знаков, можно использовать команду find в команде for.

·        Использование ключей /v или /n с ключом /c

Если в одной команде заданы ключи /c и /v, команда find выведет на экран количество строк, которые не содержат заданную строку поиска. Если в одной команде указаны оба ключа: /c и /n, команда find игнорирует ключ /n.

·        Использование команды find со знаками перевода строки

Команда find не распознает символ перевода строки. Когда команда find используется для поиска текста в файле, который содержит символы перевода строки, необходимо ограничить строку поиска текстом, который может быть найден между символами перевода строки (строка не может прерываться символом перевода строки). Например, find не найдет совпадение для строки "файл налогов" если перевод строки в файле стоит между словами "файл" и "налогов".

Примеры

Для вывода всех строк из файла Pencil.ad, которые содержат слова «Точилка» служит следующая команда:

find "Точилка" pencil.ad

Для поиска строки, содержащей текст, указанный в кавычках, необходимо сначала заключить в кавычки всю строку. Во-вторых, необходимо использовать двойные кавычки для каждых кавычек, содержащихся в строке. Поиск Ученый пометил свой документ ""только для дискуссии"". Это не окончательный отчет." В Report.doc введите:

find "Ученый пометил свой документ ""только для дискуссии."" Это не окончательный отчет." report.doc

Если поиск требуется провести в нескольких файлах, следует использовать команду find с командой for. Для поиска файлов с расширением .bat, содержащих строку "PROMPT", можно использовать следующую команду:

for %f in (*.bat) do find "PROMPT" %f

Для поиска на жестком диске C файлов, содержащих строку "CPU" и отображения их имен используйте символ канала (|), чтобы направить результаты команды dir в команду find:

dir c:\ /s /b | find "CPU"

Так как команда find проводит поиск, различая строчные и заглавные буквы, а команда dir выводит результаты заглавными буквами, необходимо задать строку "CPU" заглавными буквами или использовать ключ /i в команде find.


 

Findstr     (Содержание)

Findstr

Поиск образцов текста в файлах с использованием регулярных выражений.

Синтаксис

findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offline] [/g:файл] [/f:файл] [/c:строка] [/d:СписокКаталогов] [/a:АтрибутЦвета] [строки] [[диск:][путь] ИмяФайла [...]]

Параметры

/b

Сравнивает шаблон с началом строки.

/e

Сравнивает шаблон с концом строки.

/l

Использует заданную строку буквально.

/r

Использует строку поиска как регулярное выражение. Команда Findstr интерпретирует все метасимволы как регулярные выражения, если не используется ключ /l.

/s

Задает поиск файлов в текущем каталоге и его подкаталогах.

/i

Задает поиск без различия строчных и заглавных букв.

/x

Печатает точно совпавшие строки.

/v

Печатает строки, не содержащие совпадений.

/n

Печатает в начале совпавшей строки ее номер.

/m

Печатает только имя файла при обнаружении совпадения.

/o

Печатает смещение перед выводом строки с совпадением.

/p

Пропускает файлы с непечатаемыми символами.

/offline

Обработка файлов с автономным атрибутом.

/f:файл

Читает список из заданного файла.

/c:строка

Использует заданный текст как литеральную строку поиска.

/g:файл

Получает строки поиска из заданного файла.

/d:СписокКаталогов

Ищет в списке каталогов, разделенном запятыми.

/a:АтрибутЦвета

Задает атрибуты цвета двумя шестнадцатеричными цифрами.

строки

Текст, поиск которого производится в файле, заданном параметром ИмяФайла.

[диск:][путь] ИмяФайла [...]

Файл или несколько файлов для поиска.

/?

Отображение справки в командной строке.

Заметки

·        Использование регулярных выражений с командой findstr

Команда findstr способна выполнять точный поиск текста в любом текстовом файле или файлах формата ASCII. Однако иногда имеется только часть информации, которая должна быть найдена, или требуется найти информацию в широком диапазоне. В таких случаях команда findstr предоставляет мощную возможность поиска с использованием регулярных выражений.

В противоположность точному заданию строки символов для поиска, регулярные выражения позволяют задать образец текста. Для задания образца используются литералы и метасимволы. Каждый символ, который не имеет специального значения в регулярных выражениях, рассматривается как литерал и должен точно совпасть при поиске. Например, буквы и цифры являются литеральными символами. Метасимволы — это символы со специальным значением (оператор или разделитель) в регулярных выражениях.

В приведенной ниже таблице перечислены метасимволы, допустимые для команды findstr.

Символ

Значение

.

Подстановочный знак: любой символ

*

Повтор: ноль или более предшествующих символов или классов символов.

^

Позиция строки: начало строки

$

Позиция строки: конец строки

[класс]

Класс символа: любой символ из множества

[^класс]

Инвертированный класс: любой символ из множества

[x-y]

Диапазон: любой символ из диапазона

\x

Исключение: использование метасимвола x в качестве литерала

\<xyz

Позиция слова: начало слова

xyz\>

Позиция слова: конец слова

Специальные символы в регулярных выражениях дают наилучший результат при совместном использовании. Например, при комбинации символа подстановки (.) и повторителя (*) совпадает любая строка символов:

.*

Используйте следующее выражение как часть более объемного выражения, которое совпадает со строкой, начинающейся с "b" и оканчивающейся на "ing":

b.*ing

Примеры

Для отделения строк поиска друг от друга следует использовать пробелы, кроме тех случаев, когда задан ключ /c. Для поиска слова "hello" или "there" в файле x.y введите следующую каманду:

findstr "hello there" x.y

Для поиска словосочетания "hello there" в файле x.y введите следующую каманду:

findstr /c:"hello there" x.y

Для поиска всех слов "Windows" (с первой заглавной буквой W) в файле Proposal.txt может быть использована следующая команда:

findstr Windows proposal.txt

Для поиска в каждом файле текущего каталога и в файлах всех подкаталогов слова "Windows" без учета строчных и заглавных букв может быть использована следующая команда:

findstr /s /i Windows *.*

Для поиска всех строк, содержащих слово "FOR", перед которым идет несколько пробелов (чтобы найти в программе оператор цикла), с выводом номера каждой строки можно использовать команду:

findstr /b /n /c:" *FOR" *.bas

Если требуется найти несколько разных наборов символов в нескольких файлах, можно создать текстовый файл, каждая строка которого содержит образец для поиска. Также можно задать точный список файлов, если поиск будет производиться в текстовых файлах. Для использования файла Finddata.txt, содержащего образцы для поиска, файла Filelist.txt, содержащего список файлов, в которых будет производиться поиск, и записи результатов работы программы в файл Results.out служит следующая команда:

findstr /g:finddata.txt /f:filelist.txt > results.out

Предположим, необходимо найти каждый файл в текущем каталоге и его подкаталогах, содержащий слово "computer" без различия строчных и заглавных букв. Для вывода списка таких файлов можно использовать следующую команду:

findstr /s /i /m "\<computer\>" *.*

Теперь, предположим, требуется найти не только само слово "computer", но и все другие слова, начинающиеся с тех же букв, таких как "compliment" и "compete". Введите следующую команду:

findstr /s /i /m "\<comp.*" *.*


 

Finger     (Содержание)

Отображает сведения о пользователе или пользователях конкретного удаленного компьютера (обычно с операционной системой UNIX), запускающего службу Finger или демон. Удаленный компьютер указывает формат и вывод экрана сведений пользователя. Запущенная без параметров, команда finger выводит справку.

Синтаксис

finger [-l] [пользователь] [@узел] [...]

Параметры

-l

Выводит сведения пользователя в форме длинного списка.

Пользователь

Задает пользователя, информация о котором будет получена. Если параметр пользователь не задан, командой finger будет выведена информация обо всех пользователях на указанном компьютере.

@узел

Удаленный компьютер, запускающий службу Finger, на котором производится поиск сведений пользователя. Можно указать имя компьютера или IP-адрес.

/?

Отображение справки в командной строке.

Заметки

·        Может быть указано несколько параметров пользователь@узел.

·        Перед параметром finger необходимо поместить дефис (-), а не косую черту (/).

·        Эта команда доступна, только если в свойствах сетевого адаптера в объекте Сетевые подключения в качестве компонента установлен протокол Интернета (TCP/IP).

·        Операционные системы Microsoft Windows 2000 и Microsoft Windows XP не предоставляют службу finger.

Примеры

Чтобы отобразить сведения для user1 на компьютере users.microsoft.com, введите следующую команду:

finger user1@users.microsoft.com

Чтобы отобразить сведения для всех пользователей на компьютере users.microsoft.com, введите следующую команду:

finger @users.microsoft.com

Условные обозначения форматирования

Формат

Значение

Курсив

Сведения, вводимые пользователем

Полужирный

Элементы, вводимые без изменений

Многоточие (...)

Параметр может быть введен в командной строке несколько раз

В квадратных скобках ([])

Необязательные элементы

В фигурых скобках ({}); варианты, разделенные вертикальной линией (|), пример: {even|odd}

Набор вариантов, из которых необходимо выбрать один

Шрифт Courier

Выходные данные программы

For