![]() 荣誉版主
|
想把以前foxmail里的所有邮件都导入到Gmail里去,用IMAP的方式直接导入Gmail,发现大量的邮件无主题无发件人信息,内容也无法辨认。一开始一位是foxmail的问题,后来把邮件导出成.eml(实际上就是文本文件),然后通过 Windows Live Mail 再导入Gmail,出现同样的问题。
经过搜索,找到问题根本原因,foxmail在邮件头会新增一行代码: 引用:
正是因为这行代码,导入到Gmail之后会无法识别。 所以想找个办法,能够批量搜索上千个文本文件,凡是发现第一行是 +OK 开头的就把这一行删掉。 |
|||
![]() Follow Me: @Nacox |
![]() 超级会员
|
1、上千个文本文件是在同一目录下还是在不同的文件夹内?
2、最大的文本文件有上M的大小吗? 3、如果把不是第一行里的其他所有类似“+OK 3368 octets ”的行都删掉有影响吗? |
||
![]() TotalCommder、EveryThing、batch、AutoHotKey、EverEdit 精通Word、Excel、PPT的安装与卸载 熟练掌握VB、C++、SQL的拼读与缩写 |
![]() 热心会员
|
下面是批处理代码,在虚拟机里模拟测试通过。
处理前做好数据备份。 ---------------------------------------------------- @echo off cls if exist file.txt del file.txt ::查找范围:当前目录下*.txt ::查找字符串:第一行内容为+OK开头的文件 findstr /s /n "+OK" *.txt | findstr "1:+OK" >file ::把符合要求的文件列表存为file.txt for /f "tokens=1,2 delims=:" %%i in (file) do echo %%i >>file.txt ::删除文件中含有+OK的行 for /f "delims=" %%i in (file.txt) do ( findstr /ivc:+OK "%%i" >file type file >"%%i" ) del file del file.txt 此帖于 2010-11-27 12:32:44 被 xfmz 编辑. . |
||
![]() 每当牵着你的手,我才知道你还在我身边。 媳妇,我爱你! |
![]() 核心会员
|
好多改名软件都有这个功能,譬如我在另一个帖子里提到的单文件版妖眼改名工具。
|
||
![]() 荣誉版主
|
引用:
2、最大的文件不超过2MB 3、只有第一行以“+OK”开头的字串有影响,其他地方虽然暂时没看到有这样的字串但应该不需要删除 把大部分需要处理的文件内容全部都删掉了变成0字节,只有少部分处理正常,试了几次没找到规律。我发个样本上来麻烦你帮忙看看,谢谢。 此帖于 2010-11-27 12:11:48 被 Naco 编辑. . |
|||
![]() 热心会员
|
处理的文件名不对,代码只适合正常的文件名,如果文件名中有空格等这种情况就出错。
3楼的代码我修改了,你再试下。:blush; ps:如何用tc的话可以先临时批量修改下文件名,把空格用_来替换即可。 此帖于 2010-11-27 12:33:12 被 xfmz 编辑. . |
||
![]() 荣誉版主
|
|
||
![]() 荣誉版主
|
|
||
![]() 热心会员
|
|
||
![]() 热心会员
|
楼主你试下能否从QQ邮箱的IMAP拖邮件到gmail的IMAP?
看是否正常。 如果可以 那先从foxmail拖到QQ邮箱的IMAP,再从QQ邮箱的IMAP拖到gmail |
||
![]() 热心会员
|
如果不行在找我
|
||
![]() 超级会员
|
以下批处理代码会把当前目录下所有txt中以"+OK"打头的行删除(不区分大小写),保存新文件到result文件夹中,而不管是否位于第一行上,这样做是为了编写代码的方便;若需要严格控制在第一行上,则还需要变通,但是会增加代码的复杂度,影响执行效率:
代码:
@echo off md result 2>nul for %%i in (*.txt) do ( findstr /bivc:"+OK" "%%i">"result\%%i" ) pause |
||
![]() 『软件使用』版主
|
vim 就可以
|
||
![]() 荣誉版主
|
谢谢xfmz、namejm和其他同学,已经用xfmz在3楼的代码搞定了,所有邮件都成功导入到了Gmail里。彻底告别Foxmail,告别本地客户端了。
|
||