添加的.eml到每一个文件名末尾在多个文件夹

添加的.eml到每一个文件名末尾在多个文件夹

问题描述:

的交易:添加的.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://*.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” 上

谢谢:)

所以所有文件都没有扩展名。 我已添加文件参数,它只会检索文件而不是文件夹,如果您的邮件文件夹中有任何子文件夹,请使用它。

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

谢谢你,我现在就试试看,它看起来会做这项工作:) – Danielx64

你应该有一个厕所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

所以,我似乎误导了你错误的帮助部分,因为我很抱歉。我应该引导你到重命名项目的帮助。 (抱歉忙于工作)。

所以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