Condividi tramite


><$<, $,< $$, $><>$ a< (Esegui file script)

I comandi $<,><<$><$ e $$>a< legge il contenuto del file di script specificato e usano il contenuto come input dei comandi del debugger.

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

Parametri

Filename Specifica un file contenente il testo del comando debugger valido. Il nome del file deve seguire le convenzioni del nome file di Microsoft Windows. Il nome del file può contenere spazi.

argn

Specifica qualsiasi numero di argomenti stringa per il debugger da passare allo script. Il debugger sostituirà qualsiasi stringa del modulo ${$argn} nel file di script con l'argn corrispondente prima di eseguire lo script. Gli argomenti potrebbero non contenere virgolette o punti e virgola. È necessario separare più argomenti in base agli spazi; se un argomento contiene uno spazio che deve essere racchiuso tra virgolette. Tutti gli argomenti sono facoltativi.

Ambiente

Elemento Descrizione
Modalità Modalità utente, modalità kernel
Targets Dump live, arresto anomalo
Piattaforme Tutti

Commenti

I token $$< e $< eseguono i comandi trovati nel file di script letteralmente. Tuttavia, con $< è possibile specificare qualsiasi nome di file, incluso uno che contiene punti e virgola. Poiché $< consente l'uso dei punti e virgola nel nome del file, non è possibile concatenare $< con altri comandi del debugger, perché non è possibile usare un punto e virgola sia come separatore di comandi che come parte di un nome file.

I token $$>< e $>< eseguono i comandi trovati nel file di script letteralmente, che significa che aprono il file di script, sostituire tutte le restituzioni a capo con punti e virgola ed eseguire il testo risultante come singolo blocco di comandi. Come illustrato in precedenza, la variante $<>< consente nomi di file contenenti punti e virgola, il che significa che non è possibile concatenare $>< con altri comandi del debugger.

I token $$>< e $>< sono utili se si eseguono script che contengono programmi di comando debugger. Per altre informazioni su questi programmi, vedere Uso di programmi di comando debugger.

A meno che non siano presenti nomi di file contenenti punti e virgola, non è necessario usare $< o $><.

Il token $$>a< consente al debugger di passare argomenti allo script. Se Nome file contiene spazi, deve essere racchiuso tra virgolette. Se vengono forniti troppi argomenti, gli argomenti in eccesso vengono ignorati. Se vengono forniti troppo pochi argomenti, qualsiasi token nel file di origine del modulo ${$argn} dove n è maggiore del numero di argomenti forniti rimarrà nel formato letterale e non verrà sostituito con alcun elemento. È possibile seguire questo comando con un punto e virgola e comandi aggiuntivi; la presenza di un punto e virgola termina l'elenco di argomenti.

Quando il debugger esegue un file di script, i comandi e il relativo output vengono visualizzati nella finestra Comando debugger. Quando viene raggiunta la fine del file di script, il controllo restituisce al debugger.

La tabella seguente riepiloga come usare questi token.

token Consente nomi di file contenenti punti e virgola Consente la concatenazione di comandi aggiuntivi separati da punti e virgola Condensa in un singolo blocco di comandi Consente argomenti di script

$<

No

No

No

$><

No

No

$$<

No

No

No

$$><

No

No

$$>a<

No

I comandi $<><, $, <$$ e $$>< fanno eco ai comandi contenuti nel file di script e visualizzano l'output di questi comandi. Il comando $$>a< non esegue l'eco dei comandi trovati nel file di script, ma visualizza semplicemente l'output.

I file di script possono essere annidati. Se il debugger rileva uno di questi token in un file di script, l'esecuzione passa al nuovo file di script e restituisce il percorso precedente al termine del nuovo file di script. Gli script possono anche essere chiamati ricorsivi.

In WinDbg è possibile incollare il testo di comando aggiuntivo nella finestra Comando debugger.

Esempio

Nell'esempio seguente viene illustrato come passare argomenti a un file di script, Myfile.txt. Si supponga che il file contenga il testo seguente:

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

È quindi possibile passare argomenti a questo file usando un comando simile al seguente:

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

Il risultato di questo comando sarà:

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

Ecco un esempio di cosa accade quando viene fornito il numero errato di argomento. Si supponga che il file My Script.txt contenga il testo seguente:

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

La riga di comando delimitata da punto e virgola seguente genera quindi l'output:

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

Nell'esempio precedente il nome del file è racchiuso tra virgolette perché contiene uno spazio e gli argomenti che contengono spazi sono racchiusi anche tra virgolette. Anche se un quinto argomento sembra essere previsto dallo script, il punto e virgola termina il comando $$>a< dopo il quarto argomento.