Справочник параметров командной строки

         

Date


Отображение текущей настройки системной даты. Выполненная без параметров команда date выводит настройку текущей системной даты и приглашение ввести новую дату.



Debug


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



Debug: a (assemble)


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



Debug: d (dump)


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



Debug: f (fill)


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



Debug: g (go)




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



Debug: h (hexadecimal)


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



Debug: i (input)


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



Debug: l (load)


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



Debug: m (move)


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



Debug: n (name)


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



Debug: p (proceed)


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



Debug: q (quit)


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



Debug: r (register)


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



Debug: s (search)


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



Debug: t (trace)


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



Debug: u (unassemble)


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



Debug: w (write)


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



Debug: xa (allocate expanded memory)


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



Debug: xd (deallocate expanded memory)


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



Debug: xm (мар expanded memory pages)


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



Defrag


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



Devicehigh


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



Dir


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



Diskcomp


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



Diskcopy


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



DiskPart


Программа DiskPart.exe — это работающий в текстовом режиме командный интерпретатор, который позволяет управлять объектами (дисками, разделами или томами) с помощью сценариев или команд, вводимых с командной строки. Перед использованием команд DiskPart.exe для диска, раздела или тома, необходимо сначала составить список объектов, а затем выбрать объект для работы. После этого все введенные команды DiskPart.exe выполняются для данного объекта.

Составить список всех доступных объектов и определить номер объекта или букву диска можно с помощью команд list disk, list volume и list partition. Команды list disk и list volume позволяют вывести все диски и тома компьютера. Команда list partition, однако, выводит разделы только выбранного диска. При использовании команды list рядом с выбранным объектом отображается звездочка (*). Объект выбирается по номеру или букве диска, например диск 0, раздел 1, том 3 или том C.

После выбора объекта он остается выделенным до выбора другого объекта. Например, если фокус установлен на диске 0 и выбран том 8 на диске 2, фокус переместиться с диска 0 на том 8 диска 2. В некоторых командах фокус перемещается автоматически. Например, после создания раздела фокус автоматически перемещается на этот раздел.

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



Dos


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



Doskey


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



Dosonly


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



Driverquery


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



Команды DiskPart


Пометка имеющего фокус раздела на базовом диске как активного. Эта информация указывает базовой системе ввода/вывода (BIOS) или расширенному интерфейсу микропрограмм, что раздел или том является действительным системным разделом или системным томом.

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

Важно!

DiskPart проверяет только тот факт, что раздел может содержать файлы загрузки операционной системы. DiskPart не проверяет содержимое раздела. Если раздел, помеченный по ошибке как «active», не содержит файлы загрузки операционной системы, компьютер не запустится.



Команды подсистемы MS-DOS


Система Windows XP включает 16-разрядные (внешние) команды для подсистемы MS-DOS и других подсистем. Это старые команды, такие как edlin и graphics, и команды, используемые только в MS-DOS, такие как debug или exe2bin. Эти 16-разрядные команды включены для обеспечения совместимости с системами MS-DOS и MS OS/2 версии 1.x.

Остальные команды подсистемы MS-DOS, такие как share, выполняют задачи, встроенные в систему Windows XP или подсистему MS-DOS. Эти команды включены для сохранения совместимости с существующими файлами, но их использование в командной строке не влияет на результат, поскольку аналогичные действия выполняются автоматически.

Примечание

Следующие 16-разрядные команды подсистемы MS-DOS недоступны в системе Windows XP 64-Bit Edition.

Дополнительные сведения см. по ссылке.

Append

Debug

Подкоманды Debug

Edit

Edlin

Подкоманды Edlin

Exe2bin

Forcedos

Graphics

Loadfix

Loadhigh (Lh)

Mem

Nlsfunc

Setver

Share

Для настройки подсистемы MS-DOS воспользуйтесь командами конфигурирования, такими как device или lastdrive. Укажите эти команды файле Config.nt в каталоге системный_корневой_каталог\SYSTEM32 или в файле настройки, задаваемом файлом PIF определенного приложения. Эти команды влияют только на работу подсистемы MS-DOS. Многие из этих команд, например buffers и break, пропускаются в подсистеме MS-DOS, поскольку они не нужны для ее нормальной работы. Они используются только для обеспечения совместимости.

Дополнительные сведения о командах настройки подсистемы MS-DOS см. по ссылке.

Country

Device

Devicehigh

Dos

Dosonly

Echoconfig

Fcbs

Files

Install

Ntcmdprompt

Shell

Stacks

Switches



Новые способы выполнения типичных задач


Система Windows XP поддерживает и расширяет практически все функциональные возможности системы MS-DOS. В нижеприведенных таблицах разъясняются следующие вопросы.

Изменения в функциональных возможностях команд MS-DOS.

Команды MS-DOS не поддерживаются системой Windows XP.

Команды MS-DOS не поддерживаются системой Windows XP 64-Bit Edition.

Изменения в командах MS-DOS

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

Команда

Изменения

chcp Изменены кодовые страницы для всех окон командной строки.
diskcomp Параметры командной строки /1 и /8 больше не поддерживаются.
diskcopy Параметр командной строки /1 больше не поддерживается.
doskey Команда может быть использована для всех программ с символьным интерфейсом, которые поддерживают буферизованный ввод. Команда doskey снабжена некоторыми дополнениями.
format Поддержка гибких магнитных дисков емкостью только 1,44 Мбайт. Магнитооптические диски емкостью 20,8 Мбайт больше не поддерживаются. Параметры командной строки /b, /s, /u, /1, /4 и /8 больше не поддерживаются.
label В метках тома могут быть использованы символы «^» и «&».
mode Форматы mode lptn[:][cols=c][lines=n] и mode lptn[:][c][,[n]] больше не поддерживаются.
print Параметры командной строки /b, /c, /m, /p, /q, /s, /t и /u не поддерживаются.
prompt Новые комбинации символов позволяют добавлять к приглашению амперсанд ($a), скобки ($c и $f) и пробелы ($s).
recover Восстановление только файлов.
rmdir Новый параметр командной строки /s позволяет удалять каталоги, содержащие файлы и подкаталоги.
sort Не требует переменной среды TEMP. Размер файлов не ограничен.
xcopy Новый параметр командной строки /g позволяет создавать расшифрованные конечные файлы.

Недоступные команды MS-DOS

Не поддерживаются следующие команды системы MS-DOS.

Параметр

Новая процедура или причина для удаления

assign Не поддерживается системой.
backup Не поддерживается системой.
choice Не поддерживается системой.
ctty Не поддерживается системой.
dblspace Не поддерживается системой.
deltree Команда rmdir /s позволяет удалять каталоги, содержащие файлы и подкаталоги. Дополнительные сведения о команде rmdir см. в разделе Rmdir.
dosshell Возможности этой команды встроены в систему.
drvspace Не поддерживается системой.
emm386 Возможности этой команды встроены в систему.
fasthelp Не поддерживается системой. Используйте команду help в командной строке. Дополнительные сведения о команде help см. в разделе Help. Полный список служебных программ командной строки см. в разделе Средства командной строки.
fdisk Не поддерживается системой. Воспользуйтесь командой diskpart, позволяющей управлять дисками, разделами и томами. Дополнительные сведения о команде diskpart см. в разделе Diskpart.
include
interlnk Не поддерживается системой.
intersrv Не поддерживается системой.
join Увеличенный размер разделов и улучшенная файловая система не требуют объединения дисков.
memmaker Использование памяти в подсистеме MS-DOS оптимизируется автоматически.
menucolor
menudefault
menuitem
mirror Не поддерживается системой.
msav Не поддерживается системой.
msbackup Используйте команду ntbackup для компьютеров с ленточными накопителями или команду xcopy для компьютеров без накопителей этого типа. Дополнительные сведения о команде ntbackup см. в разделе Ntbackup. Дополнительные сведения о команде xcopy см. в разделе Xcopy.
mscdex Подсистему MS-DOS не требуется настраивать для использования дисководов компакт-дисков. Система Windows XP обеспечивает доступ к дисководам компакт-дисков в подсистеме MS-DOS.
msd Используйте оснастку «Сведения о системе». Чтобы запустить оснастку «Сведения о системе», нажмите кнопку Пуск, выберите команду Выполнить и введите msinfo32.
numlock Не поддерживается системой.
power Не поддерживается системой.
restore Не поддерживается системой.
scandisk Не поддерживается системой. Используйте команду chkdsk, позволяющую создать и вывести отчет о состоянии диска в форме, зависящей от файловой системы. Команда Chkdsk также составляет список ошибок на диске и исправляет их. Дополнительные сведения о команде chkdsk см. в разделе Chkdsk.
smartdrv Кэширование в подсистеме MS-DOS выполняется автоматически.
submenu
sys Система Windows XP не может быть размещена на стандартных гибких магнитных дисках емкостью 1,2 Мбайт и 1,44 Мбайт.
undelete Не поддерживается системой.
unformat Не поддерживается системой.
vsafe Не поддерживается системой.
<
Команды MS- DOS не поддерживаются системой Windows XP 64-Bit Edition.

Следующие 16-разрядные команды подсистемы MS-DOS не поддерживаются системой Windows XP 64-Bit Edition.

Параметр

Функция
append Позволяет программам открывать файлы данных из указанных папках так, как будто они находятся в текущей папке.
debug Запуск Debug.exe — программы для проверки и отладки исполняемых файлов MS-DOS.
edit Запуск редактора MS-DOS, который позволяет создавать и редактировать текстовые файлы в формате ASCII.
edlin Запуск программы Edlin.exe — строкового редактора, позволяющего создавать и редактировать текстовые файлы в формате ASCII.
exe2bin Преобразование исполняемых файлов (.exe) в двоичный формат.
expand Восстановление одного или нескольких сжатых файлов.
fastopen
forcedos Запуск заданной программы в подсистеме MS-DOS. Эта команда необходима только для тех программ, которые не распознаются системой Windows XP как программы MS-DOS.
graphics Загрузка в память программы, позволяющей печатать на принтере изображение с экрана монитора, если используется цветной или графический адаптер.
loadfix Служит для загрузки программы выше первых 64 Кбайт обычной памяти и запуска этой программы.
loadhigh (lh) Загрузка программы в верхнюю область памяти. Это позволяет оставить больше свободной обычной памяти для других программ.
mem Служит для вывода сведений о свободных и занятых областях памяти и программах, находящихся в памяти подсистемы MS-DOS.
nlsfunc Загрузка сведений, относящихся к определенной стране/региону. XOX
setver Установка номера версии MS-DOS, который подсистема MS-DOS сообщает программам.
share

Задание обнуления всех секторов на


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


noerr
Только для сценариев. Если задан этот параметр, при возникновении ошибки программа DiskPart продолжает обрабатывать команды, как если бы ошибки не было. Если параметр noerr не задан, при возникновении ошибки работа программы DiskPart завершается и выдается код ошибки.
Преобразование базового диска в динамический.


noerr
Только для сценариев. Если задан этот параметр, при возникновении ошибки программа DiskPart продолжает обрабатывать команды, как если бы ошибки не было. Если параметр noerr не задан, при возникновении ошибки работа программы DiskPart завершается и выдается код ошибки.
На компьютерах с процессором Itanium преобразует пустой базовый диск со стилем разделов основная загрузочная запись в базовый диск со стилем разделов таблица разделов GUID.
Важно!
Диск может быть преобразован в GPT-диск, только если он пуст. Перед преобразованием диска создайте архивную копию данных, а затем удалите все разделы и тома.


noerr
Только для сценариев. Если задан этот параметр, при возникновении ошибки программа DiskPart продолжает обрабатывать команды, как если бы ошибки не было. Если параметр noerr не задан, при возникновении ошибки работа программы DiskPart завершается и выдается код ошибки.
На компьютерах с процессором Itanium преобразует пустой базовый диск со стилем разделов таблица разделов GUID в базовый диск со стилем разделов основная загрузочная запись.
Важно!
Диск может быть преобразован в MBR-диск, только если он пуст. Перед преобразованием диска создайте архивную копию данных, а затем удалите все разделы и тома.


noerr
Только для сценариев. Если задан этот параметр, при возникновении ошибки программа DiskPart продолжает обрабатывать команды, как если бы ошибки не было. Если параметр noerr не задан, при возникновении ошибки работа программы DiskPart завершается и выдается код ошибки.
Создание системного раздела EFI (Extensible Firmware Interface) на диске с таблицей разделов GUID (GPT) на компьютерах с процессорами Itanium. После создания раздела фокус перемещается на этот раздел.


noerr
Только для сценариев. Если задан этот параметр, при возникновении ошибки программа DiskPart продолжает обрабатывать команды, как если бы ошибки не было. Если параметр noerr не задан, при возникновении ошибки работа программы DiskPart завершается и выдается код ошибки.


noerr
Только для сценариев. Если задан этот параметр, при возникновении ошибки программа DiskPart продолжает обрабатывать команды, как если бы ошибки не было. Если параметр noerr не задан, при возникновении ошибки работа программы DiskPart завершается и выдается код ошибки.
Вывод списка дисков и таких сведений о них, как размер, свободный объем, является ли диск базовым или динамическим, а также, какой стиль раздела используется на диске — основная загрузочная запись (MBR) или таблица разделов GUID (GPT). Диск, помеченный звездочкой (*), имеет фокус.


noerr
Только для сценариев. Если задан этот параметр, при возникновении ошибки программа DiskPart продолжает обрабатывать команды, как если бы ошибки не было. Если параметр noerr не задан, при возникновении ошибки работа программы DiskPart завершается и выдается код ошибки.

Установка указанной даты, где мм


дд-мм-гг
Установка указанной даты, где мм — месяц, дд — день, гг — год.
/t
Вывод текущей даты без приглашения ввести новую дату.
/?
Отображение справки в командной строке.


[диск:][путь] имя_файла
Задание расположения и имени исполняемого файла для тестирования.
параметры
Указание параметров командной строки, передаваемых отлаживаемой программе.
?Вывод списка подкоманд команды debug.


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


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


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


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


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


адрес
Задание адреса в памяти, с которого требуется начать выполнение программы.
точки_останова
Указание до 10 временных точек останова, которые могут быть заданы как часть подкоманды g.
?Вывод списка подкоманд debug.


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


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


адрес
Задание адреса области памяти, в которую требуется загрузить содержимое файла или сектора. Если параметр адрес не задан, используется текущий адрес в регистре CS.
диск
Задание накопителя, содержащего диск, с которого считываются определенные сектора. Данный параметр задается числом: 0 = A, 1 = B, 2 = C и т. д.
первый_сектор
Задание шестнадцатеричного номера первого сектора, содержимое которого требуется загрузить.
число
Задание шестнадцатеричного числа последовательных секторов, содержимое которых требуется загрузить. Параметры диск, первый_сектор и число используются только в том случае, когда необходимо загрузить содержимое определенных секторов, а не файл, указанный в командной строке debug или в последней подкоманде n (name).
?Вывод списка подкоманд debug.


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


[путь][исполняемый_файл
Задание расположения и имени исполняемого файла для тестирования.
[параметры_файла]
Задание параметров и ключей командной строки для тестируемого исполняемого файла.
?Вывод списка подкоманд debug.


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


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

и гг должны быть разделены


Значения параметров мм, дд и гг должны быть разделены точкой (.), знаком переноса (-) или косой чертой (/).
Параметр мм может принимать значения от 1 до 12.
Параметр дд может принимать значения от 1 до 31.
Параметр гг может принимать значения от 80 до 99 или от 1980 до 2099.
Система WindowsXP автоматически изменяет текущие месяц и год в зависимости от количества дней в месяце (28, 29, 30 или 31 день).


Использование команд подсистемы MS-DOS
Команда debug — это команда подсистемы MS-DOS, которая выполняется в среде WOW/NTVDM.
Разделитель параметров команды
Параметры можно вводить через запятые или пробелы, но это требуется только для шестнадцатеричных значений. Например, следующие команды эквивалентны:

dcs:100 110
d cs:100 110
d,cs:100,110

Использование команд debug
Существует несколько команд 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. Например:


Задание правильных записей диапазона
Параметр диапазон используется в командах 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


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

cs:100 10f
cs:100 l 10

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


Задание правильных записей адреса
Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд 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 последовательно заменяет существующие значения значениями из списка. При возникновении ошибки никакие значения не будут изменены.
Список может быть задан как шестнадцатеричными числами, так и строкой. При этом числа разделяются пробелами, запятыми или символами табуляции. Строки необходимо заключать в апострофы (т. е. 'строка') или кавычки (т. е. "строка").
Создание двоичного кода
Просмотр содержимого области памяти


Задание правильных записей диапазона
Параметр диапазон используется в подкомандах 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

Использование параметра адрес
Введите знак равенства (=) перед параметром адрес, чтобы отличить адрес от адресов точек останова (точки_останова).
Задание точек останова
Выполнение программы будет остановлено в первой встретившейся точке останова, независимо от расположения этой точки останова в списке параметра точки_останова. 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).


Задание правильных записей диапазона
Параметр диапазон используется в подкомандах 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 выполняет перекрывающее копирование без потери данных в области назначения. Содержимое адресов, которые будут перезаписаны, копируется в первую очередь. Если данные копируются из старших адресов в младшие адреса, операция копирования начинается с младшего адреса исходного блока и продолжается в направлении старшего адреса. И наоборот, если данные копируются из младших адресов в старшие, копирование начинается со старших адресов исходного блока и продолжается в направлении младшего адреса.


Использование подкоманды 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. Эти символы могут быть любыми параметрами и разделителями, которые допустимо вводить с командной строки в Windows2000.


Задание правильных записей адреса
Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд 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 не может быть использована для отладки инструкций, содержащихся в ПЗУ.


Использование подкоманды 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.


Задание правильных записей диапазона
Параметр диапазон используется в подкомандах 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

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


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

cs:100 10f
cs:100 l 10


Для записи количества байт, заданного в регистрах 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 нельзя записать с помощью этой команды.
Предупреждение!

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


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


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


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


Для использования памяти 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


Для полной и правильной дефрагментации с помощью команды defrag том должен иметь не менее 15% свободного пространства. Defrag использует этот объем как область для сортировки фрагментов файлов. Если объем составляет менее 15% свободного пространства, то команда defrag выполнит только частичную дефрагментацию. Чтобы освободить дополнительное место на диске, удалите ненужные файлы или переместите их на другой диск.
Тома, которые, возможно, повреждены, помечаются файловой системой как «грязные»; дефрагментация таких томов невозможна. Чтобы дефрагментировать «грязный» том, для него необходимо выполнить команду chkdsk. Определить, является ли том «грязным», можно с помощью команды fsutil dirty query.
В ходе анализа и дефрагментации тома в программе defrag отображается мигающий курсор. По завершении анализа и дефрагментации тома программа defrag выводит отчет об анализе, отчет о дефрагментации или оба этих отчета, после чего окно командной строки закрывается.
По умолчанию программа defrag выводит сводку обоих отчетов (об анализе и о дефрагментации), если не был введен параметр /a или /v.
Чтобы экспортировать отчеты в текстовый файл, введите параметр >имя_файла.txt, где имя_файла.txt — имя файла, задаваемое пользователем. Например:
defrag том /v >имя_файла.txt
Чтобы прервать процесс дефрагментации, нажмите клавиши CTRL+C в окне командной строки.
Ввод команды defrag и запуск программы «Дефрагментация диска» являются взаимно исключающими действиями. Если программа «Дефрагментация диска» используется для дефрагментации тома, а пользователь запускает команду defrag из командной строки, то команда defrag не выполняется. И наоборот, если команда defrag выполняется из командной строки, а пользователь открывает программу «Дефрагментация диска», то параметры дефрагментации в окне этой программы являются недоступными.


Использование /p
Если задан параметр /p, команда del выводит на экран имя каждого удаляемого файла и следующее сообщение:
имя_файла, Удалить [Y(да)/N(нет)]?
Для подтверждения удаления следует нажать клавишу Y, для отмены удаления и перехода к следующему файлу следует нажать N (если задана группа файлов) или CRTL+C для остановки работы команды del.
Отключение расширений командного процессора
Если расширения командного процессора отключены, параметр командной строки /s выводит все ненайденные, а не удаленные файлы (т. е. имеет противоположный смысл).
Удаление нескольких файлов
Все файлы в каталоге могут быть удалены с помощью команды del с параметрами [диск:]путь. Например, следующая команда позволяет удалить все файлы в папке \Work:
del \work
Кроме того, для удаления нескольких файлов можно воспользоваться подстановочными знаками (* и ?). При использовании символов подстановки в команде del следует быть особенно внимательным во избежание нежелательных удалений. Например, можно ввести следующую команду:
del *.*
Команда del выводит следующий запрос:
Все файлы в каталоге будут удалены. Продолжать [Y(да)/N(нет)]?
Для удаления всех файлов в текущей папке следует нажать Y и ENTER, для отмены удаления— N и ENTER.
Перед использованием команды del для удаления группы файлов, заданной с помощью символов подстановки, полезно вначале вызвать команду dir с теми же самыми символами для вывода списка файлов, которые будут удалены.
Предупреждение!

После удаления файлов с диска с помощью команды del, их, возможно, уже не удастся восстановить.
Команда del с другими параметрами доступна в консоли восстановления.


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


Использование команды dos=umb
Для использования команды devicehigh необходимо включить команду dos=umb в файл Config.nt или эквивалентный загрузочный файл. Если это условие не выполнено, все драйверы устройств будут загружаться в обычную память, как при использовании команды device.
Установка драйвера Himem.sys
Перед загрузкой драйверов устройств в верхнюю память с помощью команды device необходимо загрузить драйвер Himem.sys. Это нужно сделать перед использованием какой-либо команды devicehigh в файле Config.nt или эквивалентном загрузочном файле.
Ограничение размера
Если указанный драйвер устройства попытается выделить блок верхней памяти, превышающий доступный размер, система может зависнуть. Чтобы избежать этого, используйте параметр размер. Параметр размер указывает количество памяти (в шестнадцатеричном формате), необходимое для данного драйвера. Чтобы узнать данную величину для определенного драйвера устройства, загрузите этот драйвер в обычную память и запустите команду mem /debug.
Загрузка в обычную память
Если нет достаточного объема верхней памяти для загрузки драйвера устройства с помощью команды devicehigh, подсистема MS-DOS загрузит драйвер в обычную память (как при вызове команды device).


Использование нескольких имен_файлов
Допускается использование нескольких имен_файлов. Разделяйте имена файлов пробелом, запятой или точкой с запятой. Для вывода группы файлов допускается применение подстановочных знаков (? и *) в параметре имя_файла.
Использование подстановочных знаков
Для вывода списка подгруппы файлов и подкаталогов можно использовать подстановочные знаки (? и *).
Задание атрибутов файлов для вывода
Если параметр /a используется более чем с одним значением параметра атрибуты, команда dir выведет имена только тех файлов, все атрибуты которых совпадают с заданными. Например, при использовании параметра /a со значениями атрибутов r и -h в формате /a:r-h или /ar-h команда dir выведет имена файлов, являющихся одновременно скрытыми и защищенными от записи.
Указание порядка сортировки имен файлов
Если указано несколько значений порядка_сортировки, команда dir сортирует имена файлов сначала по первому условию, затем — по второму и т. д. Например, если указан ключ /o со значениями e и -s порядка_сортировки в формате /o:e-s или /oe-s, команда dir отсортирует имена каталогов и файлов по расширениям, затем от больших файлов к меньшим и выведет окончательный результат. В результате сортировки по алфавиту файлы без расширений будут идти вначале, затем имена каталогов, а потом имена файлов с расширениями.
Использование перенаправления и каналов
Чтобы перенаправить вывод команды dir в файл с помощью символа (>) или использовать канал (|) для передачи вывода в другую команду, необходимо использовать параметры команды dir /a:-d и /b для вывода только списка имен файлов. Параметр имя_файла с параметрами /b и /s можно использовать, чтобы указать поиск командой dir в текущем каталоге и его подкаталогах всех файлов, соответствующих значению имя_файла. При этом команда dir выведет только имя диска, имя каталога, имя файла и расширение по одному файлу в строке. Чтобы использовать перенаправление с помощью каналов, в файле Autoexec.nt должна быть установлена переменная среды TEMP.


Использование дисков
Команда diskcomp работает только с гибкими дисками. Команду diskcomp нельзя использовать для жестких дисков. Если жесткий диск задан в качестве параметра диск1 или диск2, diskcomp выведет на экран следующее сообщение:
Диск задан неправильно.
Указанный диск не существует
либо является несъемным
Сравнение дисков
Если все дорожки на сравниваемых дисках совпадают, команда diskcomp выводит следующее сообщение:
Различия не найдены.
Если обнаружены несовпадающие дорожки, команда diskcomp выведет на экран следующее сообщение:
Ошибка сравнения:
сторона 1, дорожка 2
После окончания сравнения команда diskcomp выведет следующее сообщение:
Сравнить еще диск [Y(да)/N(нет)]?
При нажатии клавиши Y программа diskcomp выведет приглашение вставить следующий гибкий диск в дисковод для повторения операции. При нажатии клавиши N работа команды diskcomp завершается.
В процессе сравнения не учитываются номера томов гибких дисков командой diskcomp.
Пропуск параметров
Если опущен параметр диск2, команда diskcomp использует текущий диск в качестве параметра диск2. Если не заданы оба параметра, diskcomp использует текущий дисковод для обоих дисков. Если текущий диск совпадает с параметром диск1, команда diskcomp выведет приглашение сменить диски по мере необходимости.
Использование одного дисковода
Если один и тот же диск задан в качестве параметров диск1 и диск2, команда diskcomp будет работать с использованием одного дисковода и запрашивать смену дисков, когда потребуется. Возможно, менять диски местами придется несколько раз, в зависимости от емкости дисковода и объема доступной памяти.
Сравнение дисков разного типа
С помощью команды diskcomp невозможно сравнивать односторонние диски с двухсторонними, также как и диски двойной плотности с дисками высокой плотности. Если типы дисков диск1 и диск2 отличаются друг от друга, команда diskcomp выведет на экран следующее сообщение:
Несовместимые форматы дисководов или дисков.
Использование diskcomp для сравнения сетевых и виртуальных дисков


Использование дисков
Команда diskcopy работает только со съемными дисками, такими как гибкие диски. Команда diskcopy не может быть использована с жесткими дисками. Если жесткий диск задан в качестве параметра диск1 или диск2, diskcopy выведет на экран следующее сообщение:
Диск задан неправильно.
Указанный диск не существует
либо является несъемным
Команда diskcopy выведет приглашение вставить в дисководы исходный и конечный диски и нажать любую клавишу для продолжения.
После завершения копирования diskcopy выведет на экран следующее сообщение:
Копировать еще диск [Y(да)/N(нет)]?
При нажатии клавиши Y команда diskcopy выведет приглашение вставить исходный и конечные диски для следующей операции копирования. Для окончания работы команды diskcopy следует нажать N.
Если diskcopy копирует на неформатированный диск в дисководе, заданном параметром диск2, этот диск будет отформатирован так же, как диск1, с тем же количеством сторон и плотностью. При этом diskcopy выведет на экран сообщение:
Форматирование в процессе копирования.
Серийные номера дисков
Если диск-источник имеет серийный номер тома, программа diskcopy создаст новую серийную метку тома на диске-результате после завершения процесса копирования.
Пропуск параметров
Если опущен параметр диск2, команда diskcopy будет использовать текущий диск. Если не заданы оба параметра, diskcopy использует текущий дисковод для обоих дисков. Если текущий диск совпадает с параметром диск1, команда diskcopy будет запрашивать смену дисков по мере необходимости.
Использование одного дисковода для копирования
Если параметры диск1 и диск2 совпадают, программа diskcopy выведет приглашение поменять диски. Если не заданы оба параметра диск и текущий диск является дисководом гибкого диска, программа diskcopy будет запрашивать подтверждения каждый раз, когда будет требоваться смена диска. Если на диске содержится больше информации, чем объем доступной памяти, команда diskcopy не сможет выполнить копирование за один проход. Команда diskcopy читает исходный диск, записывает сведения на диск-результат, а затем снова приглашает сменить диск. Этот процесс будет продолжаться до тех пор, пока вся информация не будет скопирована.


Установка драйвера 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.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 Удаление всех макросов.
<


Обычно при завершении работы приложения MS-DOS система WindowsXP возвращает управление командному интерпретатору 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-файле приложения не указан другой загрузочный файл.

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


Чтобы изменить дату на 3 августа 2000г., введите одну из следующих команд:
08.03.00
08-03-00
08/03/00
Чтобы вывести текущую системную дату, введите следующую команду:
date /t


Команда 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


Чтобы сравнить блок памяти от 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 отсутствуют в списке. Это означает, что значения, расположенные по этим адресам, совпадают.


Введите следующую команду:
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


Введите следующую команду:
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.


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


Чтобы запустить текущую программу и выполнить ее до точки останова по адресу 7550 в сегменте CS, введите следующую команду.
gcs:7550
Debug.exe выведет на экран содержимое регистров и состояние флагов, а затем остановит подкоманду g.
Чтобы установить две точки останова, введите следующую команду:
gcs:7550, cs:8000
Если подкоманда g введена снова после остановки в точке останова, выполнение начнется с инструкции, следующей за точкой останова, а не с обычного адреса начала программы.


Введите следующую команду:
h19f 10a
Результаты вычислений Debug.exe будут выведены в виде:
02A9 0095


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


В командной строке введите:
debug
Введите следующую команду:
nfile.com
Чтобы загрузить файл File.com, введите следующую команду:
l
Debug.exe загружает этот файл и выводит приглашение debug.
Чтобы загрузить содержимое 109 (6Dh) секторов диска C, начиная с логического сектора 15 (0Fh), в область памяти, начиная с адреса 04BA:0100, введите следующую команду:
l04ba:100 2 0f 6d


Чтобы скопировать содержимое адресов с CS:110 по CS:510, а затем с CS:10F по CS:50F и так далее, пока все содержимое адресов с CS:100 по CS:500 не будет скопировано, введите следующую команду:
mcs:100 110 cs:500
Чтобы просмотреть результаты, воспользуйтесь подкомандой d (dump), указав адреса, заданные в подкоманде m.


В этом примере запускается команда 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 в первой форме.


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


В этом примере тестируемая программа содержит инструкцию 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


Если текущее положение указателя инструкций равно 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.


Чтобы найти все адреса в диапазоне от CS:100 до CS:110, содержащие значение 41, введите следующую команду:
scs:100 110 41
Результаты программы Debug.exe будут выведены в следующем формате:
04BA:0104
04BA:010D
-
Чтобы найти строку «Ph» в диапазоне от CS:100 до CS:1A0, введите следующую команду:
scs:100 1a0 "Ph"


Если текущая позиция указателя кода является 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


Чтобы деассемблировать 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


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


Чтобы выделить восемь страниц дополнительной памяти, введите следующую команду:
xa8
Если команда успешно выделит память, выводятся следующие сведения:
Создан дескриптор=0003


Чтобы освободить дескриптор 0003, введите следующую команду:
xd 0003
При успешном выполнении программы Debug.exe будет выведено сообщение:
Дескриптор 0003 освобожден


Чтобы отобразить логическую страницу 5 дескриптора 0003 в физическую страницу 2, введите следующую команду:
xm 5 2 0003
При успешном выполнении программы Debug.exe будет выведено сообщение:
Логическая страница 05 отображена на физическую страницу 02


Чтобы вывести сведения о состоянии памяти 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


Чтобы удалить все файлы из папки Test на диске C, введите одну из следующих команд:
del c:\test
del c:\test\*.*


Для использования управляющих последовательностей ANSI, работающих с дисплеем и клавиатурой подсистемы MS-DOS, в файл Config.nt или эквивалентный файл запуска требуется добавить следующую строку:
device=c:\winnt\system32\ansi.sys


Чтобы загрузить драйвер устройства Mydriv.sys в верхнюю область памяти, введите следующую команду в файле Config.nt или эквивалентном загрузочном файле:
device=c:\winnt\system32\himem.sys
dos=umb
devicehigh=mydriv.sys


Чтобы вывести подряд все каталоги в алфавитном порядке, в несколько колонок и с паузой после заполнения каждого экрана, убедитесь, что корневой каталог является текущим, и введите следующую команду:
dir /s/w/o/p
Команда dir выводит имя корневого каталога, имена его подкаталогов и имена файлов (включая расширения) в этом каталоге. Затем выводятся имена подкаталогов и имена файлов в каждом каталоге дерева каталогов.
Для изменения предыдущего примера так, чтобы команда dir не выводила имена каталогов, введите следующую команду:
dir /s/w/o/p/a:-d
Чтобы напечатать список каталогов, введите следующую команду:
ir > prn
Если указать параметр prn, список каталогов отправляется на принтер, подключенный к порту LPT1. Если принтер подключен к другому порту, необходимо заменить параметр prn именем этого порта.
Вывод команды dir также может быть направлен в файл при замене prn на имя файла. Кроме того, можно также ввести путь. Например, для направления вывода команды dir в файл Dir.doc в каталоге Records введите следующую команду:
dir > \records\dir.doc
Если файл Dir.doc не существует, команда dir создаст его при условии наличия каталога Records. Если этот каталог не существует, выводится следующее сообщение:
Ошибка создания файла
Чтобы вывести список всех файлов с расширением .txt во всех каталогах диска C, введите следующую команду:
dir c:\*.txt /w/o/s/p
Команда dir выводит на экран алфавитный список файлов, удовлетворяющих заданному шаблону, в несколько колонок с паузой после заполнения каждого экрана.


Если в системе установлен только один дисковод гибких дисков (например A) и требуется сравнить два диска, введите следующую команду:
diskcomp a: a:
Программа diskcomp выводит приглашения вставить диски по мере необходимости.
Следующий пример демонстрирует использование параметра errorlevel в строке команды if для обработки кодов завершения программы diskcomp в пакетном файле:
rem Checkout.bat сравнивает два диска в дисководах A и B
echo off
diskcomp a: b:
if errorlevel 4 goto ini_error
if errorlevel 3 goto hard_error
if errorlevel 1 goto no_compare
if errorlevel 0 goto compare_ok
:ini_error
echo ОШИБКА: недостаточно памяти или неверная команда
goto exit
:hard_error
echo ОШИБКА: возникла невосстановимая ошибка
goto exit
:break
echo "Нажата комбинация клавиш CTRL+C" для остановки сравнения
goto exit
:no_compare
echo Диски отличаются
goto exit
:compare_ok
echo Сравнение прошло успешно, диски совпадают
goto exit
:exit


Чтобы скопировать диск в дисководе B на диск в дисководе A, введите следующую программу:
diskcopy b: a:


rem Эти команды устанавливают 3 драйвера.
create partition primary size=2048
assign d:
create partition extend
create partition primary size=2048
assign e:
create partition logical
assign f:
remove
Удаление буквы диска или точки подключения тома, имеющего фокус. Если используется параметр all, удаляются все текущие буквы дисков и точки подключения. Если буква диска или точка подключения не указана, команда DiskPart удаляет первую обнаруженную букву диска или точку подключения.
Команду remove можно использовать для смены буквы диска, связанной со съемным диском. Не допускается удаление буквы диска для системного и загрузочного тома, а также для тома, содержащего файл подкачки. Кроме того, не допускается удаление букв диска разделов, созданных ИВТ, любых GPT-разделов с нераспознанной таблицей GUID, а также особых, не содержащих данных GPT-разделов, таких как системные разделы EFI.


Параметры /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 в файл Config.nt или в загрузочный файл, заданный в PIF-файле. Следующий пример иллюстрирует содержимое файла Config.nt.
dos=high,umb
device=%systemroot%\system32\himem.sys
files=40
@echo off
dosonly


Далее приведены примеры использования команды 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

адрес]


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

Создание сценариев с помощью программы DiskPart


С помощью DiskPart можно создавать сценарии для автоматизации задач по работе с дисками, таких как создание томов или преобразование дисков в динамические. Составление сценариев этих задач полезно, если система Windows устанавливается с помощью автоматического режима или программы Sysprep, которые не поддерживают создание томов, за исключением загрузочного тома.

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

DiskPart /S имя_сценария.txt

Где имя_сценария.txt — это имя текстового файла, содержащего сценарий.

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

DiskPart /S имя_сценария.txt > файл_журнала.txt

Где файл_журнала.txt — имя текстового файла, в который записывается вывод программы DiskPart.

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

В следующей таблице перечислены коды ошибок DiskPart.

Ошибка

Описание

0 Ошибки отсутствуют. Сценарий выполнен без ошибок.
1 Возникла фатальная ошибка. Возможны серьезные неполадки.
2 Указан неверный параметр для команды DiskPart.
3 Указанный сценарий или выходной файл не открываются в программе DiskPart.
4 Произошел сбой в одной из служб, использованной программой DiskPart.
5 Возникла синтаксическая ошибка команды. Сценарий не выполнен, поскольку объект неправильно выбран или его недопустимо использовать с данной командой.



Заметки


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


Для загрузки задаваемого регистрами 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 запущена с параметром адрес, начальная точка загрузки определяется как сумма заданного адреса и адреса, содержащегося в шестнадцатеричном файле.