題 什麼使Internet Shortcut文件特別?


當我將一個快捷方式從Firefox保存到磁盤時,這是在文本或十六進制編輯器中查看時的內容。

[InternetShortcut]
URL=http://superuser.com/
IDList=
HotKey=0
IconFile=C:\Users\Jerry\AppData\Local\Mozilla\Firefox\Profiles\e8oe2h15.default\shortcutCache\ndPGaHoK9RbB9Xs6pYDwiA==.ico
IconIndex=0

它看起來很簡單:文本中帶有一些標記的純文本。

假設我想手動重新創建此文件。

  1. 我創建一個空文本文件。
  2. 我將上面的內容粘貼到其中。
  3. ..保存文件並退出程序。
  4. ..將文件擴展名從txt更改為url。
  5. ..單擊YES接受丟失文件類型關聯的風險 提示時。

1

現在,我希望能夠通過雙擊文件圖標在我的默認Web瀏覽器中打開此文件。但不,它不會像那樣工作。相反,我收到一條錯誤消息。

2

 此Internet快捷方式的目標“”無效。去吧  Internet快捷方式屬性表,並確保目標是正確的。

究竟是什麼意思 target ""

通過在網站上搜索,我可以看到其他幾個用戶偶然發現了Internet快捷方式文件的這種或類似的困難,有些甚至試圖創建“跨平台”Internet快捷方式文件。我沒看到的是為什麼這首先是一種痛苦。

它應該只是一個簡單的文件,其URL地址可以在Web瀏覽器中打開。那麼是什麼讓這些“互聯網快捷方式”文件變得特別?是什麼讓他們打勾?當我將我的文件與原始文件進行比較時,它們看起來是相同的。那麼究竟問題出在哪裡呢?

更新


這是一些有趣的發現。 “目標”一詞可能表示URL,“Internet快捷方式屬性表”最有可能是指文件屬性對話框中的“Web文檔”選項卡。 如果我沒記錯的話,它在以前版本的Windows(至少在Windows 98中)中標題為“Internet Shortcut”。從那時起,它似乎已重命名為Web Document。

還有更多!從下面的屏幕截圖中可以看出,我的文件與原始文件共享相同的SHA1摘要。但它不共享相同的文件圖標,也沒有“Web文檔”選項卡。

original file properties new file properties original file sha1 new file sha1

更重要的是,當我重命名我的新文件以便以大寫字母開頭時,它就變成了一個功能性的Internet快捷方式文件。就這樣!它剛剛開始工作。如果我再次重命名它,以便以小寫字母開頭,它將再次停止工作。不要相信我的話,看看下面的截圖。

new file properties with new name

它還有助於使用下劃線,短劃線,點,括號,大括號,方括號,等號,數字符號,感嘆號等啟動文件名。它甚至可以用空白紙張圖標正確替換地球圖標。將其重命名為除以外的任何內容 test 要么 Test 真的改變了圖標。

但是什麼導致它表現得像這樣行為或行為不端?例如,如果文件名以大寫字母開頭,為什麼會這麼重要?普通文件沒有這樣的限制......

更新2


如果新文件的名稱以大寫字母開頭, 在更改名稱擴展名之前,和 然後重命名 所以它以小寫字母開頭......然後它仍然有效!

所以如果你這樣做,它會工作:

newfile Lancelot.txt
pastein Lancelot.txt
rename Lancelot.txt Lancelot.url
rename Lancelot.url lancelot.url

a b

更新3


test.url文件的原始問題很可能發生在上面的第4步。我最初在另一個磁盤上創建了一個名為test.txt的文件,並將其重命名為test.url。這是在我在Desktop文件夾的系統磁盤上創建第二個具有相同名稱的文件之前(如上所述)。我不記得了,但很可能我最初創建了一個文件,更改了名稱擴展名,然後粘貼到目標URL並保存它並希望通過簡單的雙擊即可工作。與創建文件相反,粘貼目標URL,以及 然後 更改名稱擴展名。


7
2018-04-07 09:24


起源


我覺得你的方法沒什麼問題。它在這裡使用您的複制/粘貼[除了缺少圖標,當然] - 目標“”是應該列出的 URL:  在打開屬性表時在Web文檔中...這裡正確顯示 http://superuser.com。我在WIn7上測試,但沒有8.1嘗試。 - Tetsujin
@Tetsujin檢查你的文件名。它是以大寫或小寫字母開頭的嗎?如果是大寫,請嘗試小寫。還有......那真的很奇怪。 - Samir
我有一個名為'net shortcut.url'和另一個簡稱為'新文本文檔' - 窗口似乎隱藏了.url,即使我通常設置為不。我最初將.txt更改為.url - Tetsujin
沒關係。我忘記了事情。我現在開始了 baby boy.txt 文件並重命名為 baby boy.url 它工作。我再次重命名說 baby.url (擴展隱藏)它仍然有效,如此 Baby.url。我認為它可能與使用多個單詞的名稱有關。現在突然間,我能夠創建一個空白 test.txt 並過去進入並重命名為 test.url 它工作。咦?我不知道這裡發生了什麼。行為似乎因天氣而異。之前天氣晴朗,但現在雲層正在積聚,可能會開始下雨。 - Samir
只是為了驗證我做了重啟,是的,我現在可以創建了 test.txt 並將其重命名為 test.url 它會起作用。去搞清楚!看起來文件名中的先前“男嬰”以某種方式將其直接設置。 Windows冒犯了? - Samir


答案:


我想我得到了一些東西。我懷疑,Windows以某種方式內化(記住)您以前用於Internet快捷方式文件的名稱。我使用Windows 10 TP做了一些實驗。我將嘗試總結到目前為止我學到的東西。下面的屏幕截圖顯示了我一直在試驗的文件的圖標和名稱。

icons

我會用數字,從左到右或按名稱來引用它們。

  • 通過拖放favicon來從Firefox創建1號 桌面。我用這個作為參考。這是工作。
  • 編號2,3和6是手動創建的空白文本文件。他們 留空,他們的名稱擴展名從txt更改為url。 這些是  工作:它們會導致錯誤出現。

    error

  • 編號4是手動創建的空白文本文件。的內容 然後將數字1粘貼到其中,並更改其名稱擴展名 從txt到url。這是工作。
  • 數字5是手動創建的空白文本文件。它的文件類型 名稱和目標URL是手動輸入的。這是工作。
  • 更改文件名(不包括擴展名)會影響 該文件的功能(無論它是否真正起作用) 以兩種方式之一。

1: 如果在啟用之前正確定義了文件的內容   它(通過設置url擴展名),它不會受到名稱的影響   更改。它在變更之前起作用,並且在變更之後它將起作用。

2: 如果文件的內容是  在啟用它之前定義(例如空白文件),它會  受名字影響   更改。單獨更改名稱無濟於事。它以前沒用過   在改變之後它將無法工作。 另外! 新文件名   如果您決定更改文件,將在以後變得無法使用   無需正確定義內容(或留下內容)   你稍後再回來添加正確的URL定義(閱讀   在解釋)。

  • 更改文件內容會影響文件的功能 以兩種方式之一。

1: 如果以前正確定義了文件的內容,則   文件仍然可以像以前一樣工作。但所有的變化都是為了   文件將被忽略。實際上,可以刪除所有內容和文件   仍然有效。要提交任何更改,必須保存文件   一個新文件名,一個以前從未使用過的文件名。信封套   計數,所以改變 test.url 並將其保存為 Test.url (如果   以前未使用過的)被認為是一個新文件,獨立於test.url   文件。任何其他更改都必須保存在另一個之下   文件名,一個從未使用過的文件名。等等等等。

2: 如果文件的內容是  之前定義的(例如空白文件),它現在無法通過更改來定義它   內容並保存這些更改。所有更改都將被忽略。如果它   之前沒有工作,改變後就無法工作了。提交任何   更改時,文件必須以新文件名保存,具有   從未使用過(具有唯一新名稱的新文件)。

文件內容

數字1,2,6的內容:

[InternetShortcut]
URL=http://superuser.com/
IDList=
HotKey=0
IconFile=C:\Users\Jerry\AppData\Local\Mozilla\Firefox\Profiles\bcf6rzuf.default\shortcutCache\ndPGaHoK9RbB9Xs6pYDwiA==.ico
IconIndex=0

3號和4號的內容:它們是空白的!

5號內容:

[InternetShortcut]
URL=http://microsoft.com/

結論

這裡有兩個重要的事實要學習。

  1. 在更改名稱擴展名之前,文件需要包含有效的“目標”(即URL地址)和文件類型名稱(Internet快捷方式) (或補充)。
  2. 使用的名稱不能重複用於其他目標URL。永久刪除原始文件後甚至沒有。

更新


看起來在Internet Explorer中打開文件(如果您使用的是Firefox或其他第三方瀏覽器)可能會導致修復損壞的URL文件。我已經看到它發生在帶有IE 11的Windows 8.1上。但是如前所述,在IE中打開之前,需要正確定義URL文件內容。 IE將重新解釋內容,甚至添加一個漂亮的圖標作為文件圖標,實質上通過添加任何缺少的“Web文檔”屬性來修復文件。但是,它沒有修復我的test.url文件。所以它可能不適用於所有文件,我不知道為什麼。


我發現這個註冊表編輯很有幫助。

  1. 運行regedit.exe
  2. 導航 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl
  3. 創建一個標題為的新密鑰 FEATURE_URLFILE_CACHEFLUSH_KB936881
  4. 導航 FEATURE_URLFILE_CACHEFLUSH_KB936881
  5. 創建一個標題為的新dword iexplore.exe
  6. 設定值 iexplore.exe 到1
  7. 重啟

資源: 微軟(KB936881)

這樣做之後,我的test.url文件 最後 開始工作了,它接收了一個Firefox圖標代替全球(參見相關截圖)。此修復程序最初應用於XP,Server 2003和Vista。但顯然它也適用於Windows 8.1(未在Windows 10上測試)。

這個錯誤的原因 - 在Microsoft知識庫文章中給出 - 不是很詳細,但它確實說下面。

如果Windows外殼程序收到通知,則會出現此問題   在創建Internet快捷方式文件的過程中。這個   在文件完全寫入之前收到通知   到磁盤。

它沒有說明“通知”的含義。


我懷疑,Windows正在使用一些Internet Explorer組件來解釋這些Internet快捷方式(URL)文件。因此,您在該文本文件中放置的任何內容僅用於初始解釋。將文件擴展名更改為URL後,您已更改文件關聯,因此Internet Explorer將解釋文件內容。如果結構合理,它會將其轉換為工作URL Internet快捷方式文件。否則(如將其留空並更改擴展名),當您嘗試打開它時,您將收到可怕的錯誤。

實際的快捷方式存儲在別處,而不是存儲在文件本身中,因此,一旦初始解釋和文件類型轉換完成,原始文件就可以保留為0字節文件。該文件僅用於指向快捷方式數據。快捷方式數據是存儲在NTFS文件系統中的“Web文檔”字段。

整個業務無法重複使用文件名,或者您將全球文件作為文件圖標(或圖標或瀏覽器圖標)的方式,它與Internet Explorer緩存Web內容的方式有關。所以實際上,當你雙擊其中一個URL文件,並且你將Firefox設置為默認的Web瀏覽器時,它實際上並不是Firefox打開URL;這是Internet Explorer!通過一些內部Windows嚮導,Internet Explorer隨後將URL傳遞給Firefox,Firefox啟動並加載URL並看到光()。 您不會因為不使用Internet Explorer而感到自豪。

要刪除任何阻止您重命名文件的緩存,或強制Internet Explorer再次重新解釋同名文件(如修改其內容後),您需要清除一些緩存文件夾。這稱為TIF或Internet臨時文件。

  1. 打開%localappdata%\ Microsoft \ Windows \ INetCache
  2. 選擇所有文件(ctrl + a)。
  3. 刪除(del)!
  4. 立即嘗試雙擊修改後的URL文件。它應該工作。

這適用於Windows 8,8.1和10.您可以在以前的Windows版本的其他位置找到此文件夾。在Windows 7中,我認為它與上面的位置相同,直到Windows級別。應該有一個名為Temporary Internet Files的文件夾。


7



如果有人知道Windows的哪個部分負責此行為,以及如何重置它以便文件名可以重新用於新的目標URL,請填寫空白。我還沒有找到辦法做到這一點。 在這方面:我今天收到了最新的10049 Windows 10 TP,在升級過程中,上面的所有快捷方式文件都已重置,現在它們都在運行。除了“波士頓”的快捷方式之外,所有這些都是空的。作為重置的一部分,2號,3號和6號也收到了SU favicon作為新圖標。 - Samir
Windows是否緩存.url(Internet快捷方式)文件的內容? MUICache說,但我不確定,因為regedit沒有顯示任何內容。特定於那裡的.URL。 - Karan
該註冊表項似乎包含dll和exe文件的“應用程序公司”和“友好應用程序名稱”。我認為它與本地化有關,並為那些使用非英語語言的Windows(因此MUI)顯示這些名稱。 - Samir
就像以前一樣,Internet Explorer是Windows中奇怪行為的罪魁禍首。更不用說安全問題了。 - Samir
恭喜一些深入的調查,並感謝在這里分享。沒有你說的讓我想回到微軟平台。他們怎麼能在很多方面弄亂它 - 我從不停止驚訝。 - Floris