最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

cmd批處理轉(zhuǎn)義字符%的詳細(xì)解釋

 更新時(shí)間:2008年09月03日 11:38:20   作者:  
在命令行中使用for時(shí)不需要雙%,這源于命令解釋器對(duì)命令行與批處理的處理方式不同。
1、%是個(gè)ESCAPE字符,通常將之譯為轉(zhuǎn)義字符,但也有更形象的譯名脫逸字符、逃逸字符等。也就是說(shuō)%不僅僅將與其相關(guān)的特定字符串轉(zhuǎn)義并替換為特定字符串,而且自身也會(huì)被“脫逸”。而且類似于C語(yǔ)言中的轉(zhuǎn)義字符"\",雙%會(huì)轉(zhuǎn)義并脫逸為單%,四%則脫為雙%。

2、for本身是一個(gè)特殊的命令,類似于一個(gè)特化的命令解釋器,因?yàn)樗墓δ軐?shí)現(xiàn)需要執(zhí)行多條語(yǔ)句,因此它必須也具有對(duì)命令行(特指do后的命令行)分析處理的功能。而command/cmd實(shí)現(xiàn)for時(shí)自然會(huì)借用自身原有的命令行分析模塊,因此for具有二級(jí)轉(zhuǎn)義的特性,for中do后的語(yǔ)句被分兩級(jí)分析和解釋,第一級(jí)在command/cmd讀入并解釋for命令行時(shí),第二級(jí)在for讀入并解釋do命令時(shí),它通常會(huì)對(duì)同一命令行的進(jìn)行多次解釋。

然后,我們可以注意到,在do中使用命令行參數(shù)變量和環(huán)境變量時(shí),不需要雙%,那是因?yàn)椋@些變量在經(jīng)過(guò)第一級(jí)轉(zhuǎn)義后,被替換成特定的不變的字符串常量,參與for循環(huán)的所有執(zhí)行過(guò)程;而替代變量則要求在執(zhí)行(do后的子命令行中)過(guò)程中不斷的動(dòng)態(tài)變化,而這個(gè)變化自然仍需要通過(guò)脫逸字符來(lái)實(shí)現(xiàn),因此使用雙%就是成了必然的選擇。

另外,還需要注意到,在命令行中使用for時(shí)不需要雙%,這源于命令解釋器對(duì)命令行與批處理的處理方式不同。在早期的DOS版本中,%在命令行中不被視為轉(zhuǎn)義字符,所以不會(huì)被轉(zhuǎn)義和脫逸,所以當(dāng)時(shí)無(wú)法在命令行直接引用環(huán)境變量。而使用for時(shí),只需要一個(gè)%供for進(jìn)行轉(zhuǎn)義和脫逸就夠了。在以后的命令解釋器版本中,加入了命令行轉(zhuǎn)義的支持(主要是環(huán)境變量的支持),但命令行for使用單%的傳統(tǒng)仍然保留了下來(lái)。

而 cmd中的變量延遲替換是屬于特殊的情況,但不違背以上的轉(zhuǎn)義原則,只是for中的環(huán)境變量不再是常量了。

相關(guān)文章

最新評(píng)論

南木林县| 满洲里市| 安阳市| 明光市| 淮南市| 襄垣县| 新巴尔虎右旗| 余庆县| 平果县| 建瓯市| 孟连| 九龙城区| 西和县| 拜泉县| 广东省| 定襄县| 澄城县| 平山县| 西峡县| 永吉县| 三门峡市| 古交市| 衢州市| 荣昌县| 宁南县| 南投县| 车致| 景谷| 望江县| 牡丹江市| 正安县| 车险| 会东县| 遵义市| 漯河市| 柘荣县| 额济纳旗| 宁化县| 宣化县| 丁青县| 岱山县|