Freigeben über


$<, $, $><$<, $$><, $$ >a< (Skriptdatei ausführen)

Die Befehle $<, $, $><$<, $$><und $$>a< lesen den Inhalt der angegebenen Skriptdatei und verwenden den Inhalt als Debuggerbefehlseingabe.

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

Parameter

Dateiname Gibt eine Datei an, die gültigen Debuggerbefehlstext enthält. Der Dateiname muss den Microsoft Windows-Dateinamenkonventionen entsprechen. Der Dateiname kann Leerzeichen enthalten.

argn

Gibt eine beliebige Anzahl von Zeichenfolgenargumenten an, die der Debugger an das Skript übergeben werden soll. Der Debugger ersetzt eine beliebige Zeichenfolge der Form ${$argn} in der Skriptdatei durch den entsprechenden Argn , bevor das Skript ausgeführt wird. Argumente dürfen keine Anführungszeichen oder Semikolons enthalten. Mehrere Argumente müssen durch Leerzeichen getrennt werden. wenn ein Argument ein Leerzeichen enthält, muss es in Anführungszeichen eingeschlossen werden. Alle Argumente sind optional.

Environment

Element BESCHREIBUNG
Modi Benutzermodus, Kernelmodus
Targets Liveabbild, Absturzabbild
Plattformen Alle

Hinweise

Die Token $$< und $< führen die Befehle aus, die in der Skriptdatei gefunden werden. Mit $< können Sie jedoch einen beliebigen Dateinamen angeben, einschließlich eines Dateinamens, der Semikolons enthält. Da $< die Verwendung von Semikolons im Dateinamen zulässt, können Sie $< nicht mit anderen Debuggerbefehlen verketten, da ein Semikolon nicht sowohl als Befehlstrennzeichen als auch als Teil eines Dateinamens verwendet werden kann.

Die $$>< - und $>< -Token führen die Befehle aus, die sich in der Skriptdatei befinden, was bedeutet, dass sie die Skriptdatei öffnen, alle Wagenrückläufe durch Semikolons ersetzen und den resultierenden Text als einzelnen Befehlsblock ausführen. Wie bei $< bereits erläutert, erlaubt die $>< -Variante Dateinamen, die Semikolons enthalten, was bedeutet, dass Sie $>< nicht mit anderen Debuggerbefehlen verketten können.

Die Token $$>< und $>< sind nützlich, wenn Sie Skripts ausführen, die Debuggerbefehlsprogramme enthalten. Weitere Informationen zu diesen Programmen finden Sie unter Verwenden von Debuggerbefehlsprogrammen.

Es sei denn, Sie verfügen über Dateinamen, die Semikolons enthalten, müssen Sie weder $noch $<><verwenden.

Mit dem Token $$>a< kann der Debugger Argumente an das Skript übergeben. Wenn Filename Leerzeichen enthält, muss er in Anführungszeichen eingeschlossen werden. Wenn zu viele Argumente angegeben werden, werden die überschüssigen Argumente ignoriert. Wenn zu wenige Argumente angegeben werden, bleibt jedes Token in der Quelldatei des Formulars ${$argn}, bei dem n größer als die Anzahl der angegebenen Argumente ist, in seiner Literalform und wird nicht durch etwas ersetzt. Sie können diesem Befehl mit einem Semikolon und zusätzlichen Befehlen folgen. das Vorhandensein eines Semikolons beendet die Argumentliste.

Wenn der Debugger eine Skriptdatei ausführt, werden die Befehle und ihre Ausgabe im Fenster Debuggerbefehl angezeigt. Wenn das Ende der Skriptdatei erreicht ist, kehrt das Steuerelement zum Debugger zurück.

In der folgenden Tabelle wird zusammengefasst, wie Sie diese Token verwenden können.

Token Erlaubt Dateinamen, die Semikolons enthalten Ermöglicht die Verkettung zusätzlicher Befehle, die durch Semikolons getrennt sind Kondensiert zu einem einzelnen Befehlsblock Lässt Skriptargumente zu

$<

Ja

Nein

No

No

$><

Ja

Nein

Ja

Nein

$$<

Nein

Ja

Nein

No

$$><

Nein

Ja

Ja

Nein

$$>a<

Nein

Ja

Yes

Yes

Die Befehle $<, $><, $$< und $$>< geben die in der Skriptdatei enthaltenen Befehle an und zeigen die Ausgabe dieser Befehle an. Der Befehl $$>a< gibt nicht die In der Skriptdatei gefundenen Befehle wieder, sondern zeigt lediglich deren Ausgabe an.

Skriptdateien können geschachtelt werden. Wenn der Debugger auf eines dieser Token in einer Skriptdatei stößt, wird die Ausführung in die neue Skriptdatei verschoben und kehrt an den vorherigen Speicherort zurück, wenn die neue Skriptdatei abgeschlossen wurde. Skripts können auch rekursiv aufgerufen werden.

In WinDbg können Sie den zusätzlichen Befehlstext in das Debuggerbefehlsfenster einfügen.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Argumente an eine Skriptdatei übergeben werden, Myfile.txt. Angenommen, die Datei enthält den folgenden Text:

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

Anschließend können Sie Argumente an diese Datei übergeben, indem Sie einen Befehl wie den folgenden verwenden:

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

Das Ergebnis dieses Befehls wäre:

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

Hier sehen Sie ein Beispiel dafür, was geschieht, wenn die falsche Anzahl von Argumenten angegeben wird. Angenommen, die Datei My Script.txt enthält den folgenden Text:

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

Dann erzeugt die folgende Semikolontrennzeichen-Befehlszeile die Ausgabe so:

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

Im vorherigen Beispiel wird der Dateiname in Anführungszeichen eingeschlossen, da er ein Leerzeichen enthält, und Argumente, die Leerzeichen enthalten, werden ebenfalls in Anführungszeichen eingeschlossen. Obwohl vom Skript ein fünftes Argument erwartet zu werden scheint, beendet das Semikolon den Befehl $$>a< nach dem vierten Argument.