共用方式為


.shell (命令殼層)

.shell 命令會啟動殼層進程,並將其輸出重新導向至調試程式,或重新導向至指定的檔案。

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

參數

InFile
指定要用於輸入之檔案的路徑和檔名。 如果您想要在初始命令之後提供任何輸入,可以指定單一連字元 (-) 而不是 InFile,且連字元之前沒有空格。

OutFile
指定要用於標準輸出之檔案的路徑和檔名。 如果省略 -o **** OutFile,輸出會傳送至 [調試程式命令] 視窗。 如果您不想要在檔案中顯示或儲存此輸出,您可以指定單一連字元 (-) 而不是 OutFile,而且連字元之前沒有空格。

ErrFile
指定要用於錯誤輸出之檔案的路徑和檔名。 如果省略 -e ErrFile,錯誤輸出會傳送到與標準輸出相同的位置。 如果您不想要在檔案中顯示或儲存此輸出,您可以指定單一連字元 (-) 而不是 ErrFile,而且連字元之前沒有空格。

選項 可以是下列任何數目的選項:

-ci “Commands
處理指定的調試程式命令,然後將其輸出當做輸入檔傳遞至所啟動的進程。 命令可以是任意數目的調試程式命令,並以分號分隔,並以引號括住。

-x
導致任何繁衍的進程與調試程式完全中斷連結。 這可讓您建立即使在偵錯會話結束之後仍會繼續執行的進程。

ShellCommand
指定要執行的應用程式命令行或Microsoft MS-DOS 命令。

Environment

項目 說明
模式 使用者模式、核心模式
目標 即時、損毀傾印
平台 全部

其他資訊

如需存取命令殼層的其他方式,請參閱 使用殼層命令。

備註

當使用者模式調試程序的輸出重新導向至核心調試程式時,不支援 .shell 命令。 如需將輸出重新導向至核心調試程式的詳細資訊(有時稱為透過 KD 的 NTSD),請參閱 從核心調試程式控制使用者模式調試程式

.shell 命令後面的整行將會解譯為 Windows 命令(即使它包含分號)。 這一行不應以引號括住。 .shellShellCommand 之間必須有空格(忽略其他前置空格)。

除非使用 -o **** OutFile 參數,否則命令的輸出會出現在 [調試程式命令] 視窗中。

發出不含參數的 .shell 命令將會啟動殼層,並將它保持開啟。 所有後續命令都會解譯為 Windows 命令。 在此期間,調試程式會顯示讀取 <.shell 進程的訊息可能需要輸入>,並將 WinDbg 提示字元取代為輸入>提示。 有時候,當調試程式離開殼層時,會出現個別的命令提示字元視窗。 應該忽略此視窗;所有輸入和輸出都會透過 [調試程式命令] 視窗完成。

若要關閉此殼層並返回調試程式本身,請輸入 exit.shell_quit(.shell_quit命令更強大,因為它可以運作,即使殼被凍結。

偵錯 CSRSS 時,無法使用此命令,因為無法在沒有使用 CSRSS 的情況下建立新的進程。

您可以使用 -ci 旗標來執行一或多個調試程式命令,然後將輸出傳遞至殼層進程。 例如,您可以使用下列命令,將 !process 0 7 命令的輸出傳遞至 Perl 腳本:

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