$<, $><, $$<, $$><, $$ >a (Exécuter le< fichier de script)
Les commandes $<, $><, $$<, $$><a et $$>a< lisent le contenu du fichier de script spécifié et utilisent son contenu comme entrée de commande du débogueur.
$<Filename
$><Filename
$$<Filename
$$><Filename
$$>a<Filename [arg1 arg2 arg3 ...]
Paramètres
Fichier Spécifie un fichier qui contient le texte de commande du débogueur valide. Le nom de fichier doit respecter les conventions de nom de fichier Microsoft Windows. Le nom de fichier peut contenir des espaces.
argn
Spécifie n’importe quel nombre d’arguments de chaîne que le débogueur doit passer au script. Le débogueur remplace toute chaîne de la forme ${$argn} dans le fichier de script par l’argn correspondant avant d’exécuter le script. Les arguments ne peuvent pas contenir de guillemets ou de points-virgules. Plusieurs arguments doivent être séparés par des espaces ; si un argument contient un espace, il doit être placé entre guillemets. Tous les arguments sont facultatifs.
Environnement
Élément | Description |
---|---|
Modes | Mode utilisateur, mode noyau |
Targets | Vidage en direct sur incident |
Plateformes | Tous |
Remarques
Les jetons $$< et $< exécutent les commandes qui se trouvent dans le fichier de script littéralement. Toutefois, avec $< , vous pouvez spécifier n’importe quel nom de fichier, y compris un nom qui contient des points-virgules. Étant donné que $< permet d’utiliser des points-virgules dans le nom de fichier, vous ne pouvez pas concaténer $< avec d’autres commandes de débogueur, car un point-virgule ne peut pas être utilisé à la fois comme séparateur de commandes et dans le cadre d’un nom de fichier.
Les jetons $$>< et $>< exécutent les commandes qui se trouvent dans le fichier de script littéralement, ce qui signifie qu’ils ouvrent le fichier de script, remplacent tous les retours chariot par des points-virgules et exécutent le texte résultant sous la forme d’un seul bloc de commandes. Comme avec $< abordé précédemment, la variante $>< autorise les noms de fichiers qui contiennent des points-virgules, ce qui signifie que vous ne pouvez pas concaténer $>< avec d’autres commandes de débogueur.
Les jetons $$>< et $>< sont utiles si vous exécutez des scripts qui contiennent des programmes de commande du débogueur. Pour plus d’informations sur ces programmes, consultez Utilisation de programmes de commandes de débogueur.
Sauf si vous avez des noms de fichiers qui contiennent des points-virgules, vous n’avez pas besoin d’utiliser $< ou $><.
Le jeton $$>a< permet au débogueur de passer des arguments au script. Si Filename contient des espaces, il doit être placé entre guillemets. Si trop d’arguments sont fournis, les arguments excédentaires sont ignorés. Si trop peu d’arguments sont fournis, tout jeton dans le fichier source de la forme ${$argn} où n est supérieur au nombre d’arguments fournis reste dans sa forme littérale et ne sera remplacé par rien. Vous pouvez suivre cette commande avec un point-virgule et des commandes supplémentaires ; la présence d’un point-virgule met fin à la liste d’arguments.
Lorsque le débogueur exécute un fichier de script, les commandes et leur sortie s’affichent dans la fenêtre Commande du débogueur. Lorsque la fin du fichier de script est atteinte, le contrôle retourne au débogueur.
Le tableau suivant récapitule comment utiliser ces jetons.
Jeton | Autorise les noms de fichiers qui contiennent des points-virgules | Permet la concaténation de commandes supplémentaires séparées par des points-virgules | Condense en bloc de commande unique | Autorise les arguments de script |
---|---|---|---|---|
$< |
Oui |
Non |
Non |
Non |
$>< |
Oui |
Non |
Oui |
Non |
$$< |
Non |
Oui |
Non |
Non |
$$>< |
Non |
Oui |
Oui |
Non |
$$>a< |
Non |
Oui |
Oui |
Oui |
Les commandes $<, $><, $$<et $$>< font écho aux commandes contenues dans le fichier de script et affichent la sortie de ces commandes. La commande $$>a< ne fait pas écho aux commandes trouvées dans le fichier de script, mais affiche simplement leur sortie.
Les fichiers de script peuvent être imbriqués. Si le débogueur rencontre l’un de ces jetons dans un fichier de script, l’exécution passe au nouveau fichier de script et retourne à l’emplacement précédent lorsque le nouveau fichier de script est terminé. Les scripts peuvent également être appelés de manière récursive.
Dans WinDbg, vous pouvez coller le texte de commande supplémentaire dans la fenêtre Commande du débogueur.
Exemples
L’exemple suivant montre comment passer des arguments à un fichier de script, Myfile.txt. Supposons que le fichier contient le texte suivant :
.echo The first argument is ${$arg1}.
.echo The second argument is ${$arg2}.
Ensuite, vous pouvez passer des arguments à ce fichier à l’aide d’une commande comme suit :
0:000> $$>a<myfile.txt myFirstArg mySecondArg
Le résultat de cette commande serait :
The first argument is myFirstArg.
The second argument is mySecondArg.
Voici un exemple de ce qui se passe lorsque le nombre incorrect d’argument est fourni. Supposons que le fichier My Script.txt contient le texte suivant :
.echo The first argument is ${$arg1}.
.echo The fifth argument is ${$arg5}.
.echo The fourth argument is ${$arg4}.
Ensuite, la ligne de commande délimitée par des points-virgules suivante produit une sortie :
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
Dans l’exemple précédent, le nom de fichier est placé entre guillemets, car il contient un espace, et les arguments qui contiennent des espaces sont également placés entre guillemets. Bien qu’un cinquième argument semble être attendu par le script, le point-virgule met fin à la commande $$>a< après le quatrième argument.