我的組織中的許多人不使用 Outlook 的聯絡人功能,因此他們無法匯出任何內容。相反,他們依賴自動完成清單。我是不是詢問如何按原樣傳輸此列表,例如,當獲得新工作站時。有時我們需要這些文字格式的清單。.nk2
由於帳戶使用 IMAP,因此沒有文件,因此 Outlook 在內部儲存資料(如連結說明中所述)。有沒有簡單的方法來獲得它們?
答案1
我認為我沒有最有效的解決方案,但它確實有效。我有一個 Linux 工作站,所以我用我已經知道的工具把文字撕下來,然後又踢又尖叫。您也許可以對 Windows 版本和/或附帶的 BASH shell 執行相同的操作適用於 Windows 的 Git,如果您沒有其他合適的程序來處理這些文件。
在來源電腦上使用 MFCMAPI 將
IPM.Configuration.Autocomplete
檔案提取為 TXT 檔案。超出範圍,但您可以按照問題中連結的傳輸說明的第一部分進行操作。在文字編輯器中開啟該文件,它是 XML。轉到
<property>
包含 的文件PR_ROAMING_BINARYSTREAM
,僅將長十六進位字串 (0DF0...
) 保存在<Value>
單獨的純文字檔案中,例如automplete-dump-hex.txt
.以 ASCII/UTF-8 格式儲存,不含位元組順序標記。將包含十六進位流的檔案轉換為二進位。我使用了這樣的命令:
xxd -r -p < automplete-dump-hex.txt > automplete-dump-raw.txt
該原始文字包含純文字部分(採用 UTF-16、小端字節序),但它也包含二進位數據,並且字串以空字節分隔。您可以在任何合適的編輯器中打開它,然後從這裡開始自己的方式。我在 Vim 中打開它,強制編碼
:e ++enc=utf-16le automplete-dump-raw.txt
,然後將其覆蓋為 UTF-8 (:set fileencoding=utf-8
)。我將空值視為行分隔符號並蒐索任何包含 的內容
@
,然後將空值轉換為換行符:grep -zF @ automplete-dump-raw.txt | tr '\000' '\n' > automplete-dump-possibles.txt
然後我將最後一個輸出檔案整理為更友善的格式(TSV):
- 排序並刪除重複行(Vim
:sort u
); - 刪除了幾行虛假資料;
- 使用正規表示式替換轉換
name <email@address>
為兩個單獨的欄位; - 刪除了一些名稱周圍的單引號;和
- 再次進行重複資料刪除,優先選擇包含名稱+位址的行而不是僅包含位址的行。
- 排序並刪除重複行(Vim
這成功地產生了包含數百個唯一地址的列表,我對此感到滿意。我認為這些步驟的描述比實際步驟長。