2017-09-27 88 views
0

的交易:添加的.eml到每一個文件名末尾在多個文件夾

我一直使用雷鳥 - 這一直是偉大的,但我想移動到Microsoft Outlook。現在因爲我把事情做得太過分了,我決定用maildir來存儲我的電子郵件。再次,這是美好的,但我需要繼續前進。

我的計劃是做Thunderbird - >導入到mailstore - >導出到pst - >導入到outlook中(或者打開outlook來打開文件)。

現在應該很容易,但問題是我需要一種方法將「.eml」添加到每個文件的末尾,否則,mailstore將不會導入電子郵件。

我運行Windows 10的親x64和這是我在PowerShell中正在做的:

Get-ChildItem -File -Recurse | % { Rename-Item -Path $_.PSPath -NewName $_.FullName ($_.Name + ".eml")} 

現在我看到https://stackoverflow.com/a/21611922/1129151給出的答案,但它不是我是什麼了。 我也看到了http://www.kevinberridge.com/2010/06/powershell-add-extension-to-every-file.html,但問題是它沒有處理遞歸添加「.eml」。

當我試圖運行上面的代碼,我得到

重命名,編號:位置參數無法找到接受 參數「1506493412587000.eml」。在線:1 char:36 + ... curse | %{Rename-Item -Path $ .PSPath -NewName $ .FullName($ _。Nam ... + ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidArgument:(:) [Rename-Item],ParameterBindingException + FullyQualifiedErrorId:PositionalParameterNotFound,Microsoft.PowerShell.Commands.RenameItemCommand

可能有人請告訴我,我需要做的就是在 「的.eml」 上

謝謝:)

回答

0

所以所有文件都沒有擴展名。 我已添加文件參數,它只會檢索文件而不是文件夾,如果您的郵件文件夾中有任何子文件夾,請使用它。

get-childItem C:\temp\pos\mail\*.* -Recurse -File | rename-item -newname { "$($_.name).eml" } 
+0

謝謝你,我現在就試試看,它看起來會做這項工作:) – Danielx64

0

你應該有一個廁所k在獲得孩子的幫助下。

看看這個例子,更特別的是,例如數4

編輯:

做之前,你這所有的文件,你手工做一個,並檢查它是否工作在Outlook?

+0

我知道mailstore將能夠導入.eml文件,我可以直接在Outlook中打開eml文件,所以我知道該部分將工作。這只是重新命名,我需要整理出來。 我正在看https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-5.1現在 謝謝你的反饋:) – Danielx64

+0

我知道outlook可以打開EML文件,我問的原因是,我想知道如果你的文件的結構是類似的,你可以重命名爲EML,它會工作。 – Snak3d0c

1

所以,我似乎誤導了你錯誤的幫助部分,因爲我很抱歉。我應該引導你到重命名項目的幫助。 (抱歉忙於工作)。

所以there,你會發現:

get-childItem *.txt | rename-item -newname { $_.name -replace '\.txt$','.log' } 

這應該讓你去,例如:

get-childItem C:\temp\pos\mail\*.* -Recurse | rename-item -newname { $_.name -replace '\.txt$','.eml' } 

您應該TXT變成擴展您的文件有。

請注意\$中的替換部分? 這是一個正則表達式。 \就是說,找一個實際的點。 $ -sign就是說,在字符串的末尾。

+0

謝謝你,我想知道我是否正在尋找合適的文檔:) 那麼這項工作? 'get-childItem C:\ temp \ pos \ mail \ * -Recurse | rename-item -newname {$ _。name -replace'$','。eml'}'因爲在任何文件的末尾都沒有擴展名。 – Danielx64

相關問題