Compartir a través de


.shell (comando Shell)

El comando .shell lanza un proceso de shell y redirige su salida al depurador o a un archivo especificado.

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

Parámetros

Infile
Especifica la ruta y el nombre de un archivo que se utilizará como entrada. Si su intención es no ofrecer ninguna entrada después del comando inicial, puede especificar un solo guion (-) en lugar de InFile sin espacio antes del guion.

OutFile
Especifica la ruta y el nombre de un archivo que se utilizará como salida estándar. Si se omite -o **** OutFile, la salida se envía a la ventana de comando del depurador. Si no desea que esta salida se muestre o se guarde en un archivo, puede especificar un solo guion (-) en lugar de OutFile sin espacio antes del guion.

ErrFile
Especifica la ruta y el nombre de un archivo que se utilizará como salida de error. Si se omite -e ErrFile, la salida de error se envía al mismo lugar que la salida estándar. Si no desea que esta salida se muestre o se guarde en un archivo, puede especificar un solo guion (-) en lugar de ErrFile sin espacio antes del guion.

Opciones Puede ser cualquiera de las siguientes opciones:

-ci "Commands"
Procesa los comandos del depurador especificados y, a continuación, pasa su salida como un archivo de entrada al proceso que se está iniciando. Commands puede ser cualquier número de comandos del depurador, separados por punto y coma, y entre comillas.

-x
Hace que cualquier proceso que se esté generando se desvincule completamente del depurador. Esto le permite crear procesos que seguirán ejecutándose incluso después de que finalice la sesión de depuración.

ShellCommand
Especifica la línea de comandos de la aplicación o el comando MS-DOS de Microsoft que debe ejecutarse.

Entorno

Elemento Descripción
Modos Modo de usuario, modo kernel
Destinos En tiempo real, volcado de errores
Platforms All

Información adicional

Para conocer otras formas de acceder al shell de comandos, consulte Uso de comandos de shell.

Comentarios

El comando .shell no es compatible cuando la salida de un depurador en modo de usuario se redirige al depurador del kernel. Para obtener más información sobre cómo redirigir la salida al depurador del kernel (a veces denominado NTSD sobre KD), consulte Control del depurador en modo de usuario desde el depurador del kernel.

Toda la línea posterior al comando .shell se interpretará como un comando de Windows (aunque contenga punto y coma). Esta línea no debe ir entre comillas. Debe haber un espacio entre .shell y el ShellCommand (se ignoran los espacios iniciales adicionales).

La salida del comando aparecerá en la ventana de comandos del depurador, a menos que se utilice el parámetro -o **** OutFile.

Emitir un comando .shell sin parámetros activará el shell y lo dejará abierto. Todos los comandos posteriores se interpretarán como comandos de Windows. Durante este tiempo, el depurador mostrará mensajes en los que se leerá <. Es posible que el proceso de shell necesite entradas>, y la solicitud de WinDbg se sustituirá por una solicitud de Input>. A veces, aparecerá una ventana de símbolo del sistema independiente cuando el depurador deje abierto el shell. Esta ventana debe ignorarse; todas las entradas y salidas se realizarán a través de la ventana de comando del depurador.

Para cerrar este shell y volver al depurador propiamente dicho, escriba exit o .shell_quit. (El comando .shell_quit es más potente porque funciona incluso si el shell está congelado).

Este comando no puede utilizarse mientras se depura el CSRSS, porque no pueden crearse nuevos procesos sin que el CSRSS esté activo.

Puede utilizar la marca -ci para ejecutar uno o más comandos del depurador y luego pasar su salida a un proceso de shell. Por ejemplo, puede pasar la salida del comando !process 0 7 a un script Perl utilizando el siguiente comando:

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