當(dāng)前位置: 首頁IT技術(shù) → 特別字符文件名導(dǎo)致win7不能識別

特別字符文件名導(dǎo)致win7不能識別

更多

在winxp中我們喜歡用特別字符加字母組成文件名,這樣子有利于我們更加容易區(qū)分與了解文件的意義,但是這些特別字符在win7中就有可能不能識別,下來我們就來看看這樣的現(xiàn)像吧。

  此問題在Win7所有版本中都會出現(xiàn),具體表現(xiàn)為使用右鍵以管理員身份運行時批處理一閃即逝,雙擊運行則正常。這個問題是本人在去年12月的時候發(fā)現(xiàn)的,應(yīng)該是Win7的一個BUG,當(dāng)時還發(fā)了幾條微博。

  假設(shè)文件名為“A&B.bat”,系統(tǒng)會認為“&”前后是兩條語句,所以會執(zhí)行“A”和“B.bat”。

  假設(shè)文件名為“A^B.bat”,系統(tǒng)會忽略“^”,所以實際上運行的是“AB.bat”。

  但是一般情況下當(dāng)前文件夾中并沒有“A”、“B.bat”、“AB.bat”這幾個文件,于是就自動退出了。這里說明一下,運行“A”時,系統(tǒng)不會運行無擴展名的“A”,而是會按照環(huán)境變量%PATHEXT%里面的值“.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC”按順序進行查找“A.COM”、“A.EXE”……

  為此我們可以進行驗證,在某個文件夾中新建這6個文件A、A&B.bat、A.bat、A^B.bat、AB.bat、B.bat。

  除A&B.bat和A^B.bat外,內(nèi)容均為

  PowerShell@Echo %~nx0

  @Pause

  1

  2@Echo %~nx0

  @Pause

  其中%~nx0表示當(dāng)前批處理(0)的文件名(n)及擴展名(x)。A&B.bat和A^B.bat需要把%~nx0換成A^&B.bat和A^^B.bat,因為“&”和“^”都需要轉(zhuǎn)義才能顯示

  雙擊直接運行A&B.bat:

    右鍵管理員身份運行A&B.bat:

    你還可以將A.bat、B.bat刪除其中一個或者都刪除再看看運行結(jié)果,我就不截圖了。A^B.bat的結(jié)果和A&B.bat類似,也不截圖了。

 

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)