這些 Windows 檔案名稱轉換是什麼?

這些 Windows 檔案名稱轉換是什麼?

我使用 Windows 7 x64。
如果我右鍵單擊名為的資料夾C:\Longer than (3),然後單擊“發送到”並將其發送到 .ahk 文件,該文件僅顯示它收到的參數,它會顯示 .ahk 文件C:\LONGER~3。幾乎所有文件都會發生同樣的情況,例如C:\Новый текстовый документ.txt變成 → C:\700C~1.TXT

我如何將這些路徑轉換為正常路徑?這些路徑轉換是什麼?

答案1

這就是所謂的 8.3 檔案名:

8.3 檔案名稱(也稱為短檔案名稱或 SFN)是舊版 DOS 以及 Windows 95 和 Windows NT 3.5 之前的 Microsoft Windows 版本所使用的檔案名稱約定。它還在現代 Microsoft 作業系統中用作長文件名的備用檔名,以與舊程式相容。
……
然後,剝離的名稱將被截斷為其基本名稱的前 6 個字母,後跟波形符,後跟單個數字,後跟句點 .,後跟擴展名的前 3 個字符。

數字只是一個計數器。對於C:\LONGER~3,您可能擁有或曾經有 3 個以 開頭的檔案C:\LONGER

此格式允許將檔案名稱轉換為不包含特殊字元(尤其是空格)的格式。它對於刪除名稱中包含不可見特殊字元的檔案或將它們作為不包含空格的參數傳遞(否則可能會被截斷為第一個空格)非常有用。

沒有功能需要將這些名稱轉換為長格式,因為它們的工作方式與長格式相同。

有關將 8.3 名稱轉換為長格式的多種方法,請參閱帖子
如何在批次腳本中將 Windows 短名稱路徑轉換為長名稱

答案2

AFAIK 你無法取得原始檔案名稱。但您可以透過命令停用此選項:

fsutil.exe 8dot3name set D: 1

這將禁用它的磁碟D。若要在系統範圍內停用它,請使用下列命令:

fsutil.exe behavior set disable8dot3 1

PS 不確定此指令在 Windows 7 中是否可用

相關內容