Создание сценариев с помощью программы DiskPart
С помощью DiskPart можно создавать сценарии для автоматизации задач по работе с дисками, таких как создание томов или преобразование дисков в динамические. Составление сценариев этих задач полезно, если система Windows устанавливается с помощью автоматического режима или программы Sysprep, которые не поддерживают создание томов, за исключением загрузочного тома.
Чтобы запустить сценарий DiskPart, введите в командной строке следующую команду:
DiskPart /S имя_сценария.txt
Где имя_сценария.txt — это имя текстового файла, содержащего сценарий.
Чтобы направить вывод сценария DiskPart в файл, введите следующую команду:
DiskPart /S имя_сценария.txt > файл_журнала.txt
Где файл_журнала.txt — имя текстового файла, в который записывается вывод программы DiskPart.
При запуске DiskPart версия этой программы и имя компьютераотображаются в командной строке. По умолчанию, если при попытке выполнить задачу сценария в DiskPart возникает ошибка, обработка сценария прекращаетсяи выводится код ошибки (если не указан параметр noerr). Однако программа DiskPart всегда возвращает коды синтаксических ошибок, независимо от использования параметра noerr. Параметр noerr позволяет выполнять такие полезные задачи, как использование одного сценария для удаления всех разделов на всех дисках, независимо от общего числа дисков.
В следующей таблице перечислены коды ошибок DiskPart.
Ошибка | Описание |
Ошибки отсутствуют. Сценарий выполнен без ошибок. | |
Возникла фатальная ошибка. Возможны серьезные неполадки. | |
Указан неверный параметр для команды DiskPart. | |
Указанный сценарий или выходной файл не открываются в программе DiskPart. | |
Произошел сбой в одной из служб, использованной программой DiskPart. | |
Возникла синтаксическая ошибка команды. Сценарий не выполнен, поскольку объект неправильно выбран или его недопустимо использовать с данной командой. |
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
BA: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
BA: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
BA: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.
Примечания