Чтобы вывести текущую системную дату,
Чтобы изменить дату на 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