$<、$、$><、<$$><、$$ >a< (執行腳本檔案)
$<、$、$><$<、$$><和 $$>a< 命令會讀取指定腳本檔案的內容,並使用其內容做為調試程式命令輸入。
$<Filename
$><Filename
$$<Filename
$$><Filename
$$>a<Filename [arg1 arg2 arg3 ...]
參數
檔名 指定包含有效調試程式命令文字的檔案。 檔名必須遵循 Microsoft Windows 檔名慣例。 檔名可能包含空格。
argn
指定要傳遞至文稿之調試程式的任何數目字串自變數。 調試程式會在執行腳本之前,以對應的 argn 取代腳本檔案中 ${$argn} 格式的任何字串。 自變數不能包含引號或分號。 多個自變數必須以空格分隔;如果自變數包含空格,則必須以引弧括住。 所有引數都是選擇性的。
環境
項目 | 描述 |
---|---|
模式 | 使用者模式、核心模式 |
目標 | 即時、損毀傾印 |
平台 | 全部 |
備註
$$< 和 $< 令牌會執行腳本檔案中常找到的命令。 不過,您可以使用 $< 來指定任何檔名,包括包含分號的檔名。 因為 $< 允許在檔名中使用分號,所以您無法與其他調試程式命令串連 $< ,因為分號不能同時當做命令分隔符和檔名的一部分使用。
$$>< 和 $>< 令牌會以常值方式執行腳本檔案中找到的命令,這表示它們會開啟腳本檔案、以分號取代所有歸位字元,並以單一命令區塊的形式執行產生的文字。 如同先前所討論 的 $< , $>< 變化允許包含分號的檔名,這表示您無法與其他調試程式命令串連 $>< 。
如果您執行包含調試程序命令程序的腳本, $$>< 和 $>< 令牌就很有用。 如需這些程式的詳細資訊,請參閱 使用調試程式命令程式。
除非您有包含分號的文件名,否則您不需要使用 $ 或 $<><。
$$>a< 令牌可讓調試程式將自變數傳遞至腳本。 如果 Filename 包含空格,則必須以引弧括住。 如果提供太多自變數,則會忽略多餘的自變數。 如果提供太多自變數,則 ${$argn} 格式的原始程序檔中的任何令牌,其中 n 大於所提供自變數的數目會維持在其常值形式中,且不會取代為任何專案。 您可以使用分號和其他命令來遵循此命令;分號的存在會終止自變數清單。
調試程序執行文本檔案時,命令及其輸出會顯示在 [ 調試程式命令] 視窗中。 到達腳本檔案的結尾時,控件會返回調試程式。
下表摘要說明如何使用這些令牌。
語彙基元 | 允許包含分號的檔名 | 允許串連以分號分隔的其他命令 | 壓縮成單一命令區塊 | 允許腳本自變數 |
---|---|---|---|---|
$< |
是 |
No |
No |
No |
$>< |
是 |
No |
是 |
No |
$$< |
No |
是 |
No |
No |
$$>< |
No |
Yes |
是 |
No |
$$>a< |
No |
Yes |
Yes |
Yes |
$<、$、$><$< 和 $$>< 命令會回應腳本檔案中包含的命令,並顯示這些命令的輸出。 $$>a< 命令不會回應腳本檔案中找到的命令,但只會顯示其輸出。
腳本檔案可以是巢狀的。 如果調試程式在腳本檔案中遇到其中一個令牌,則執行會移至新的腳本檔案,並在新腳本檔案完成時返回先前的位置。 腳本也可以以遞歸方式呼叫。
在 WinDbg 中,您可以在 [調試程式命令] 視窗中貼上其他命令文字。
範例
下列範例示範如何將自變數傳遞至腳本檔案,Myfile.txt。 假設檔案包含下列文字:
.echo The first argument is ${$arg1}.
.echo The second argument is ${$arg2}.
然後,您可以使用類似下列的命令,將自變數傳遞至此檔案:
0:000> $$>a<myfile.txt myFirstArg mySecondArg
此指令的結果如下:
The first argument is myFirstArg.
The second argument is mySecondArg.
以下是提供錯誤自變數數目時會發生什麼情況的範例。 假設 [我的 Script.txt 檔案包含下列文字:
.echo The first argument is ${$arg1}.
.echo The fifth argument is ${$arg5}.
.echo The fourth argument is ${$arg4}.
然後,下列以分號分隔的命令行會產生輸出:
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
在上述範例中,檔名會以引弧括住,因為它包含空格,而包含空格的自變數也會以引號括住。 雖然腳本似乎預期第五個自變數,但分號會在第四個自變數之後終止 $$>a< 命令。