$<, $><, $$<, $$><, $$ >< a (executar arquivo de script)
Os comandos $<, $><, $$<, $$><e $$><a leem o conteúdo do arquivo de script especificado e usam seu conteúdo como entrada de comando do depurador.
$<Filename
$><Filename
$$<Filename
$$><Filename
$$>a<Filename [arg1 arg2 arg3 ...]
Parâmetros
Filename Especifica um arquivo que contém texto de comando válido do depurador. O nome do arquivo deve seguir as convenções de nome de arquivo do Microsoft Windows. O nome do arquivo pode conter espaços.
Argn
Especifica qualquer número de argumentos de cadeia de caracteres para o depurador passar para o script. O depurador substituirá qualquer cadeia de caracteres do formato ${$argn} no arquivo de script pelo argn correspondente antes de executar o script. Os argumentos podem não conter aspas ou ponto e vírgula. Vários argumentos devem ser separados por espaços; se um argumento contiver um espaço, ele deverá ser colocado entre aspas. Todos os argumentos são opcionais.
Ambiente
Item | Descrição |
---|---|
Modos | Modo de usuário, modo kernel |
Destinos | Ao vivo, despejo de memória |
Plataformas | Tudo |
Comentários
Os tokens $$< e $< executam os comandos encontrados no arquivo de script literalmente. No entanto, com $< você pode especificar qualquer nome de arquivo, incluindo um que contenha ponto e vírgula. Como $< permite que os ponto e vírgula sejam usados no nome do arquivo, você não pode concatenar $< com outros comandos do depurador, pois um ponto e vírgula não pode ser usado como separador de comando e como parte de um nome de arquivo.
Os tokens $$>< e $>< executam os comandos encontrados no arquivo de script literalmente, o que significa que eles abrem o arquivo de script, substituem todos os retornos de carro por ponto e vírgula e executam o texto resultante como um único bloco de comando. Assim como acontece com $< discutido anteriormente, a variação $>< permite nomes de arquivo que contêm ponto e vírgula, o que significa que você não pode concatenar $>< com outros comandos do depurador.
Os tokens $$>< e $>< serão úteis se você estiver executando scripts que contenham programas de comando do depurador. Para obter mais informações sobre esses programas, consulte Usando programas de comando do depurador.
A menos que você tenha nomes de arquivo que contenham ponto e vírgula, você não precisa usar $< ou $><.
O token $$>a< permite que o depurador passe argumentos para o script. Se Filename contiver espaços, ele deverá ser colocado entre aspas. Se forem fornecidos muitos argumentos, os argumentos em excesso serão ignorados. Se forem fornecidos poucos argumentos, qualquer token no arquivo de origem do formulário ${$argn} em que n for maior que o número de argumentos fornecidos permanecerá em sua forma literal e não será substituído por nada. Você pode seguir este comando com um ponto e vírgula e comandos adicionais; a presença de um ponto e vírgula encerra a lista de argumentos.
Quando o depurador executa um arquivo de script, os comandos e sua saída são exibidos na janela Comando do Depurador. Quando o final do arquivo de script é atingido, o controle retorna ao depurador.
A tabela a seguir resume como você pode usar esses tokens.
Token | Permite nomes de arquivo que contêm ponto e vírgula | Permite a concatenação de comandos adicionais separados por ponto e vírgula | Condensa para bloco de comando único | Permite argumentos de script |
---|---|---|---|---|
$< |
Yes |
No |
No |
No |
$>< |
Yes |
No |
Yes |
No |
$$< |
No |
Yes |
No |
No |
$$>< |
No |
Yes |
Yes |
No |
$$>a< |
No |
Yes |
Yes |
Yes |
Os comandos $<, $><, $$<e $$>< ecoam os comandos contidos no arquivo de script e exibem a saída desses comandos. O comando $$>a< não ecoa os comandos encontrados no arquivo de script, mas apenas exibe sua saída.
Arquivos de script podem ser aninhados. Se o depurador encontrar um desses tokens em um arquivo de script, a execução será movida para o novo arquivo de script e retornará ao local anterior quando o novo arquivo de script tiver sido concluído. Os scripts também podem ser chamados recursivamente.
No WinDbg, você pode colar o texto de comando adicional na janela Comando do Depurador.
Exemplos
O exemplo a seguir demonstra como passar argumentos para um arquivo de script, Myfile.txt. Suponha que o arquivo contenha o seguinte texto:
.echo The first argument is ${$arg1}.
.echo The second argument is ${$arg2}.
Em seguida, você pode passar argumentos para esse arquivo usando um comando como este:
0:000> $$>a<myfile.txt myFirstArg mySecondArg
O resultado desse comando seria:
The first argument is myFirstArg.
The second argument is mySecondArg.
Aqui está um exemplo do que acontece quando o número errado de argumento é fornecido. Suponha que o arquivo Meu Script.txt contém o seguinte texto:
.echo The first argument is ${$arg1}.
.echo The fifth argument is ${$arg5}.
.echo The fourth argument is ${$arg4}.
Em seguida, a seguinte linha de comando delimitada por ponto e vírgula produz a saída assim:
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
No exemplo anterior, o nome do arquivo é colocado entre aspas porque contém um espaço e os argumentos que contêm espaços também são colocados entre aspas. Embora um quinto argumento pareça ser esperado pelo script, o ponto e vírgula encerra o comando $$><a após o quarto argumento.