找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: jonm158

[文本处理] [已解决]批处理可以实现在gmail邮箱地址中随机加点吗?

[复制链接]
发表于 2010-8-17 13:25:44 | 显示全部楼层
  1. libinglibinglibing890@gmail.com
复制代码
保存到1.txt里面
再运行gawk命令
 楼主| 发表于 2010-8-17 20:40:50 | 显示全部楼层
管理说的那个工具,以下了,但还是不清楚怎么用,还是要请高手指导,谢大家
 楼主| 发表于 2010-8-17 20:54:48 | 显示全部楼层
CUER,你好,
我先把这个做成批处理
gawk -F@ "{n=length($1);for(i=1;i<=n;i++)print substr($1,1,i-1)substr($1,i,1)\".\"substr($1,i+1)\"@\"$2}" 1.txt
再把libinglibinglibing890@gmail.com保存到1.txt里面

放在同一文件夹里,运行上面的命令,就闪了一下,没有别的变化。
请再指点
发表于 2010-8-17 20:59:35 | 显示全部楼层
不管怎样先顶一下。。。。。
发表于 2010-8-17 22:54:57 | 显示全部楼层
  1. gawk -F@ "{n=length($1);for(i=1;i<=n;i++)print substr($1,1,i-1)substr($1,i,1)"."substr($1,i+1)"@"$2}" 1.txt >2.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2010-8-17 23:44:51 | 显示全部楼层
 楼主| 发表于 2010-8-17 23:57:49 | 显示全部楼层
应是这样的效果,前面十楼,523066680版主,写了一个,但对字符太长的,计算出来太慢了
a.b.c.d
a.b.cd
a.bc.d
a.bcd
ab.c.d
ab.cd
abc.d
abcd
请各高手显神通,指导
发表于 2010-8-18 10:03:35 | 显示全部楼层
vbs版的:改成cscript模式打开,这样方便看处理进度
  1. if wscript.arguments.count=0 then
  2.    createobject("wscript.shell").run _
  3.    "cmd /c cscript " &chr(34) &wscript.scriptname &chr(34) & " isme"
  4.    wscript.quit
  5. end if
  6. :rem paktc

  7. current=replace(wscript.scriptfullname,wscript.scriptname,"")
  8. '我获得当前路径的方法,很囧...
  9. set fs=createobject("scripting.filesystemobject")
  10. set result=fs.createtextfile(current &"result.txt")
  11. set inp=wscript.stdin
  12. set put=wscript.stdout

  13. test "a","bcdefghijklmn"
  14. inp.readline

  15. function test(strcho,strhave)
  16.    if len(strhave)>0 then
  17.      tmpstr=strcho &"." & left(strhave,1)
  18.      test tmpstr,mid(strhave,2)
  19.      tmpstr=strcho & left(strhave,1)
  20.      test tmpstr,mid(strhave,2)
  21.    else
  22.      put.writeline strcho
  23.      result.writeline strcho
  24.    end if
  25. end function
复制代码
上面vbs 一边显示一边写入result.txt

[ 本帖最后由 523066680 于 2010-8-18 10:07 编辑 ]

评分

参与人数 1PB +5 收起 理由
CrLf + 5 幸苦了

查看全部评分

发表于 2010-8-18 10:15:33 | 显示全部楼层
这个东西还可以优化速度的
a.b.c.d
a.b.cd
a.bc.d
a.bcd
============
ab.c.d
ab.cd
abc.d
abcd
============
区别是 "a."和a  ,后面的完全一样……   不过…… 我也是有工作的人,闪了。
 楼主| 发表于 2010-8-18 12:11:59 | 显示全部楼层
亲爱的版主,请明确指导一下,我笨鸟实在是不明白,谢谢
 楼主| 发表于 2010-8-18 12:29:12 | 显示全部楼层
版主达人,请优化一个给我哦,谢谢
发表于 2010-8-18 15:46:05 | 显示全部楼层
vbs的话速度已经快很多了, 约莫着十几二十分钟可以完成吧?
等重新写一个又得等,时间已经过了哦?   去威客网吧,找一个处理得彻头彻尾的人
发表于 2010-8-18 17:39:48 | 显示全部楼层
优化了,测试字符串abcdefghijklmnopqrstu  21个字母
处理时间3秒到5秒左右
结果生成到 result.txt,  33MB   1048577 行 (第一行为空行)
2的20次方=1048576
  1. if wscript.arguments.count=0 then
  2.    createobject("wscript.shell").run _
  3.    "cmd /c cscript " &chr(34) &wscript.scriptname &chr(34) & " isme"
  4.    wscript.quit
  5. end if
  6. :rem paktc

  7. current=replace(wscript.scriptfullname,wscript.scriptname,"")
  8. '我获得当前路径的方法,很囧...
  9. set fs=createobject("scripting.filesystemobject")
  10. set result=fs.createtextfile(current &"result.txt")

  11. set inp=wscript.stdin
  12. set put=wscript.stdout

  13. 'src 定义整条字符串,不支持空格哦   <<-  定义在这里
  14. src="abcdefghijklmnopqrstu"
  15. srca=mid(src,1,10)
  16. srcb=mid(src,11)

  17. strall=""
  18. '先处理右边的参数示例"a","bcd"
  19. test mid(srcb,1,1),mid(srcb,2)
  20. put.writeline "Step 1 over.  Step2:"
  21. '然后前面这部分的,每一个都连接之前的全部结果
  22. funcb mid(srca,1,1) ,mid(srca,2) &" "
  23. result.close
  24. inp.readline

  25. function test(strcho,strhave)
  26.    if len(strhave)>0 then
  27.      tmpstr=strcho &"." & left(strhave,1)
  28.      test tmpstr,mid(strhave,2)
  29.      tmpstr=strcho & left(strhave,1)
  30.      test tmpstr,mid(strhave,2)
  31.    else
  32.      strall=strall &vbcrlf & strcho
  33.    end if
  34. end function

  35. function funcb(strcho,strhave)
  36.    strcho=replace(strcho," ","")
  37.    if len(strhave)>0 then
  38.      tmpstr=strcho &"." & left(strhave,1)
  39.      funcb tmpstr,mid(strhave,2)
  40.      tmpstr=strcho & left(strhave,1)
  41.      funcb tmpstr,mid(strhave,2)
  42.    else
  43.      result.write replace(strall,vbcrlf,vbcrlf &strcho)
  44.      put.writeline strcho
  45.    end if
  46. end function
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2010-8-18 21:33:21 | 显示全部楼层
谢谢版主,也谢谢各位大大了
发表于 2011-11-27 14:06:18 | 显示全部楼层
这个借鉴的地方很多,学习了,标记
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 09:55 , Processed in 0.041933 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表