更新日期:2026-04-10
⚡ 站長快讀:核心重點
- 文章屬性:科技冷知識
- 核心結論:因為
CON、PRN、AUX等字眼是從 1980 年代 MS-DOS 時期遺留下來的「保留設備名稱」,為了維持變態的向下相容性,即使到了最新的 Windows 11,系統依然禁止你使用這些名稱建立檔案或資料夾。 - 適用對象:所有對科技好奇、曾經不信邪試著改資料夾名字的 Windows 用戶。
🔍 故事的起點
如果你也是從老 Windows 時代玩上來的人,肯定聽過一個都市傳說:「微軟創辦人比爾蓋茲小時候的外號叫 CON(書呆子),他因為很討厭這個綽號,所以下令全地球的 Windows 電腦都不准建立叫做 CON 的資料夾。」
如果你不信,現在就可以切換到桌面,隨便新建一個資料夾,然後把名字改成 CON。按 Enter 鍵的瞬間,系統會毫不留情地跳出「指定的裝置名稱無效」警告,直接打臉。這不是你電腦中毒,當然也不是比爾蓋茲的玻璃心,這其實是一段微軟揹了 40 年的「歷史包袱」。
🧪 原理拆解
萬物皆檔案的 MS-DOS 時代
時間倒轉回 1980 年代,那個連滑鼠都沒有、純靠鍵盤輸入指令的 MS-DOS 時代。當時的作業系統有個很聰明的設計:把硬體設備映射成類似檔案的虛擬名稱。也就是說,作業系統把印表機、鍵盤、螢幕都當成一個「檔案」來處理。

在這些預留名稱中:
PRN代表預設印表機。COM1到COM9代表連接數據機等設備的序列埠。LPT1到LPT9是平行列印埠。- 而我們的主角
CON(Console),代表的則是主控台,也就是你的鍵盤與螢幕。
當年如果你寫完一份文字檔,想要把它印出來,不需要安裝什麼龐大的驅動程式介面,只要在終端機輸入一行指令:copy document.txt PRN,檔案就會直接送到印表機印出來。
恐怖的向下相容性
隨著科技的發展,Windows 取代了 DOS,圖形化介面取代了黑底白字的指令。但問題來了,當年有成千上萬的企業軟體和自動化腳本(Batch files)是寫死依賴這些虛擬名稱的。
為了保證這些在 1980 年代寫的老舊軟體,能夠在後續的 Windows 95、XP 甚至現在的系統上無痛運作,微軟做了一個決定:在 Win32 API 層級把這些名字「鎖死」。
只要你嘗試在 Windows 建立 CON、PRN、AUX 或 NUL 這些名稱,Win32 相容層就會以為你要對這些實體設備做操作,從而在指令到達底層檔案系統之前就把你攔截下來。而且系統防堵得非常徹底,就算你自作聰明加上副檔名,變成 CON.txt 或 NUL.json,一樣會被系統視為無效名稱並擋下。
💡 站長老實說:冷知識延伸
很多人常酸微軟不懂得拋棄包袱,連一個資料夾名字都搞不定。但站長我必須說句公道話,這水很深!微軟在作業系統界能稱霸這麼久,靠的就是這種變態等級的「向下相容(Backwards Compatibility)」。你公司 30 年前花大錢寫的進銷存系統,今天搬到最新的 Windows 11 居然還能跑,這對企業來說可是無法取代的價值。
而且,如果你有極客精神,真的很想在電腦裡生出一個 CON 資料夾,其實是有辦法的。這個限制主要是 Win32 介面層在管的,底層的 NTFS 檔案系統本身根本不在乎。你可以透過 WSL(Windows 子系統 Linux 版),或者在終端機使用 \\?\ 的特殊路徑前綴來繞過 Win32 的檢查強制建立。
不過站長強烈建議不要隨便嘗試,因為一旦建立成功,你的檔案總管或是其他應用程式在嘗試讀取這個「幽靈資料夾」時,非常有可能會因為無法解析而直接當機!看完這篇,下次再有人拿「比爾蓋茲的綽號」跟你說嘴,你就可以好好幫他科普一下了。