Поделиться через


$<, $><, $$<, $$>< a >(запуск файла скрипта< )

Команды $<, $><, $$<, $$><и $$>a< считывают содержимое указанного файла скрипта и используют его содержимое в качестве входных данных команды отладчика.

    $<Filename 
    $><Filename 
    $$<Filename 
    $$><Filename 
    $$>a<Filename [arg1 arg2 arg3 ...] 

Параметры

Имени файла Указывает файл, содержащий допустимый текст команды отладчика. Имя файла должно соответствовать соглашениям об именах файлов Microsoft Windows. Имя файла может содержать пробелы.

argn

Задает любое количество строковых аргументов для передачи отладчиком в скрипт. Перед выполнением скрипта отладчик заменит любую строку в формате ${$argn} в файле скрипта соответствующим аргументом . Аргументы не могут содержать кавычки или точки с запятой. Несколько аргументов должны быть разделены пробелами; Если аргумент содержит пробел, он должен быть заключен в кавычки. Все аргументы являются необязательными.

Среда

Элемент Описание
Режимы Пользовательский режим, режим ядра
Цели Динамический аварийный дамп
Платформы Все

Комментарии

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

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

Токены $$>< и $>< полезны при выполнении скриптов, содержащих программы команд отладчика. Дополнительные сведения об этих программах см. в разделе Использование командных программ отладчика.

Если у вас нет имен файлов, содержащих точки с запятой, не нужно использовать $< или $><.

Токен $$>a< позволяет отладчику передавать аргументы в скрипт. Если filename содержит пробелы, оно должно быть заключено в кавычки. Если указано слишком много аргументов, избыточные аргументы игнорируются. Если аргументов указано слишком мало, любой токен в исходном файле формы ${$argn}, где n больше числа предоставленных аргументов, останется в его литеральной форме и не будет заменен на ничего. Для выполнения этой команды можно использовать точку с запятой и дополнительные команды. наличие точки с запятой завершает список аргументов.

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

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

Токен Разрешает имена файлов, содержащих точки с запятой Разрешает объединение дополнительных команд, разделенных точкой с запятой Конденсируется до одного блока команд Разрешает аргументы скрипта

$<

Да

Нет

Нет

Нет

$><

Да

Нет

Да

Нет

$$<

Нет

Да

Нет

Нет

$$><

Нет

Да

Да

Нет

$$>a<

Нет

Да

Да

Да

Команды $<, $><, $$< и $$>< повторяют команды, содержащиеся в файле скрипта, и отображают выходные данные этих команд. Команда $$>a< не соответствует командам, найденным в файле скрипта, а просто отображает их выходные данные.

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

В WinDbg можно вставить дополнительный текст команды в окно Команда отладчика.

Примеры

В следующем примере показано, как передать аргументы в файл скрипта, Myfile.txt. Предположим, что файл содержит следующий текст:

.echo The first argument is ${$arg1}.
.echo The second argument is ${$arg2}.

Затем можно передать аргументы в этот файл с помощью следующей команды:

0:000> $$>a<myfile.txt myFirstArg mySecondArg 

Результатом выполнения этой команды будет:

The first argument is myFirstArg.
The second argument is mySecondArg.

Ниже приведен пример того, что происходит при указании неправильного числа аргументов. Предположим, что файл My Script.txt содержит следующий текст:

.echo The first argument is ${$arg1}.
.echo The fifth argument is ${$arg5}.
.echo The fourth argument is ${$arg4}.

Затем следующая командная строка с разделителями точкой с запятой выдает выходные данные таким образом:

0:000> $$>a< "c:\binl\my script.txt" "First one" Two "Three More" Four; recx 
The first argument is First one.
The fifth argument is ${$arg5}.
The fourth argument is Four.
ecx=0021f4ac

В предыдущем примере имя файла заключено в кавычки, так как оно содержит пробел, а аргументы, содержащие пробелы, также заключены в кавычки. Несмотря на то, что скрипт ожидает пятый аргумент, точка с запятой завершает команду $$> после< четвертого аргумента.