添加的.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” 上
谢谢:)
所以所有文件都没有扩展名。 我已添加文件参数,它只会检索文件而不是文件夹,如果您的邮件文件夹中有任何子文件夹,请使用它。
get-childItem C:\temp\pos\mail\*.* -Recurse -File | rename-item -newname { "$($_.name).eml" }
你应该有一个厕所k在获得孩子的帮助下。
看看这个例子,更特别的是,例如数4
编辑:
做之前,你这所有的文件,你手工做一个,并检查它是否工作在Outlook?
所以,我似乎误导了你错误的帮助部分,因为我很抱歉。我应该引导你到重命名项目的帮助。 (抱歉忙于工作)。
所以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就是说,在字符串的末尾。
谢谢你,我想知道我是否正在寻找合适的文档:) 那么这项工作? 'get-childItem C:\ temp \ pos \ mail \ * -Recurse | rename-item -newname {$ _。name -replace'$','。eml'}'因为在任何文件的末尾都没有扩展名。 – Danielx64
谢谢你,我现在就试试看,它看起来会做这项工作:) – Danielx64