Windows 7 中「我的文件」的簡稱

Windows 7 中「我的文件」的簡稱

我有一個程式需要存取我安裝在「我的文件」資料夾中的 C++ 編譯器 - 例如說 d:\My Documents

程式無法處理路徑中的空格,並且路徑已用雙引號引起來。我嘗試使用dir /x和找出短名稱for %I in (.) do echo %~sI。這僅傳回“我的文檔”的全名。我也嘗試過,%userprofile%\documents但程式無法識別這一點。

為什麼我無法使用此命令獲取該資料夾的短名稱?是否有其他方法來獲取短名稱或可能的截斷?

答案1

您可能正在查看連結或快捷方式。

“我的文檔”的預設位置是:

C:\Users\%USERNAME%\Documents

因此,如果您的 %USERNAME% 是“myname”,您將引用:

C:\Users\myname\Documents

聽起來您正在使用需要 DOS 8.3 檔案名稱的舊 command.com 程式。在這種情況下,您將採用前六個字元並為第一項添加“~1”。如果您有兩個項目共享相同的前六個字符,那麼下一個項目將以“~2”結尾,依此類推。可以肯定的是,您可以執行“dir /x”來查看為每個資料夾分配了哪些短名稱。

在我的最後一個範例中,我將展示這種格式的長用戶名是什麼樣子。範例使用者名稱將為“longusername”。

C:\Users\LONGUS~1\DOCUME~1

使用您自己的用戶名遵循此模式。

如果您的「我的文件」不在預設位置或您想要動態尋找該位置,您將檢查以下註冊表​​位置:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

答案2

dir /x將顯示檔案和資料夾的短檔案名稱(如果存在)。如果長名稱大於 8.3 字元格式,則將存在一個。

例如,這是dir /x在我的使用者設定檔資料夾中使用的範例:

01/02/2018  05:35 PM    <DIR>                       .
01/02/2018  05:35 PM    <DIR>                       ..
10/16/2017  09:41 AM    <DIR>          ASDM~1       .asdm
11/01/2017  01:01 PM    <DIR>          GIMP-2~1.8   .gimp-2.8
11/20/2017  05:26 PM    <DIR>          NETWOR~1     .networkassistant
12/15/2016  09:54 AM    <DIR>          THUMBN~1     .thumbnails
11/16/2017  09:48 PM    <DIR>                       Contacts
07/17/2017  02:23 PM    <DIR>          DOCUME~1     Documents
01/03/2018  01:07 PM    <DIR>          DOWNLO~1     Downloads
03/14/2017  02:43 PM    <DIR>                       GNS3
12/19/2017  01:10 PM    <DIR>          GOOGLE~1     Google Drive
11/16/2017  09:48 PM    <DIR>                       Links
06/22/2017  07:20 AM    <DIR>                       OneDrive

請注意,短名稱顯示在長名稱旁邊。

另請注意,縮短名稱的標準是刪除空格,將名稱縮短為 6 個字元並添加 ~1,所有字母大寫,添加檔案副檔名的前 3 個字元。如果有衝突,則會加上~2代替,以此類推。

如果我們假設您的文件資料夾保存在D:\My Documents並且沒有其他衝突的名稱,則短名稱將為D:\MYDOCU~1.

您可能無法使用 %userprofile% ,原因與無法使用長檔名的原因相同。該程式根本不理解環境變數。而且,它也沒有使用短名稱版本。

相關內容