Compartilhar via


.shell (Command Shell)

O comando .shell inicia um processo de shell e redireciona a saída ao depurador ou a um arquivo especificado.

.shell [Options] [ShellCommand] 
.shell -i InFile [-o OutFile [-e ErrFile]] [Options] ShellCommand

Parâmetros

Infile
Especifica o caminho e o nome de arquivo para um arquivo a ser usado para entrada. Se quiser não oferecer nenhuma entrada após o comando inicial, você pode especificar um único hífen (-) em vez de InFile, sem espaço antes do hífen.

Arquivo de saída
Especifica o caminho e o nome de arquivo para um arquivo a ser usado para saída padrão. Se -o **** OutFile for omitido, a saída será enviada à janela Comando do depurador. Se não quiser que essa saída seja exibida ou salva em um arquivo, você poderá especificar um único hífen (-) em vez de OutFile, sem espaço antes do hífen.

Arquivo Err
Especifica o caminho e o nome de arquivo para um arquivo a ser usado para saída de erro. Se -e ErrFile for omitido, a saída de erro será enviada ao mesmo local que a saída padrão. Se não quiser que essa saída seja exibida ou salva em um arquivo, você poderá especificar um único hífen (-) em vez de ErrFile, sem espaço antes do hífen.

Opções Pode ser qualquer número destas opções:

-ci "Commands"
Processa os comandos do depurador especificados e, depois, passa sua saída como um arquivo de entrada para o processo que está sendo iniciado. Os Commands podem ser qualquer número de comandos do depurador, separados por ponto-e-vírgula e entre aspas.

-x
Faz com que qualquer processo que esteja sendo gerado seja completamente separado do depurador. Isso lhe permite criar processos que continuarão em execução mesmo após o término da sessão de depuração.

ShellCommand
Especifica a linha de comando do aplicativo ou comando do Microsoft MS-DOS a ser executado.

Ambiente

Item Descrição
Modos Modo de usuário, modo kernel
Destinos Ao vivo, despejo de memória
Plataformas Tudo

Informações Adicionais

Para outras formas de acessar o shell de comando, consulte Usando comandos Shell.

Comentários

O comando .shell não é suportado quando a saída de um depurador de modo de usuário é redirecionada ao depurador kernel. Para mais informações sobre como redirecionar a saída para o depurador do kernel (às vezes chamado de NTSD sobre KD), consulte Controlar o depurador de modo de usuário do depurador de kernel.

A linha inteira após o comando .shell será interpretado como um comando do Windows (mesmo que contenha ponto e vírgula). Esta linha não ficar entre aspas. Deve haver um espaço entre .shell e o ShellCommand (espaços à esquerda adicionais serão ignorados).

A saída do comando aparecerá na janela Comando do depurador, a menos que o parâmetro -o **** OutFile seja usado.

Emitir um comando .shell sem parâmetros ativará o shell e o deixará aberto. Todos os comandos subsequentes serão interpretados como comandos Windows. Durante esse tempo, o depurador exibirá mensagens <O processo .shell pode precisar de entrada>, e o prompt do WinDbg será substituído por um prompt Input>. Às vezes, uma janela separada do Prompt de comando aparecerá quando o depurador deixar o shell aberto. Esta janela deve ser ignorada; todas as entradas e saídas serão feitas pela janela Comando do depurador.

Para fechar esse shell e voltar ao depurador, digite exit ou .shell_quit. (O comando .shell_quit é mais poderoso, pois funciona mesmo se o shell estiver congelado.)

Este comando não pode ser usado na depuração do CSRSS, pois não podem ser criados novos processos sem que o CSRSS esteja ativo.

Você pode usar o sinalizador -ci para executar um ou mais comandos do depurador e, depois, passar sua saída para um processo de shell. Por exemplo, você poderia passar a saída do comando !process 0 7 para um script Perl usando este comando:

0:000> .shell -ci "!process 0 7" perl.exe parsemyoutput.pl