
[討論]批處理中特殊字符的解釋機制探索最后由 applba 于 -5-20 03:46回避了預處理這個概念。把解釋過程了分成了兩個階段,第一輪和第二輪。第一輪解釋這一輪的解釋是全局性的,是無條件的,是發生語句執行前的。解釋的符號有(% ^ )。關于這三個符號的優先級問題(即先解釋哪個):%具有最高優先級,^和具有并列的優先級。(謝謝QZWQZW的指正)意思就是說所有的%的處理完畢后才開始處理^和;而對于^和,哪個在前面就先處理哪個第二輪解釋是局部性的,是由具體的命令或語句進行的,一邊運行一遍解釋。解釋的符號比較多:通用特殊符號:括號() & && | || > >> < ,如果開啟了變量延遲包括解釋!及其范圍的^專用特殊符號:各命令自行識別的特殊符號,差別可能很大。如大多數命令都把空格識別為分隔符,echo把它識別為普通符號。優先級問題:這些特殊符號哪個在前面就先處理哪個,前面的先處理,后面的后處理。幾個符號作用范圍: 管道符號(|) 不能超越 輸入輸出重定向符號(< > >>) 不能超越 命令分隔符(&,&&,||) 不能超越 括號。call 觸發的對%和^的再次解釋即call命令運行時把^和%重新識別特殊字符,并再次啟動解釋。call每嵌套一次,都會把%和^ 重新識別為特殊符號,并啟動新一輪的解釋。

