Board logo

标题: [文本处理] 批处理可以实现在gmail邮箱地址中随机加点吗? [打印本页]

作者: pengyou86    时间: 2009-1-25 22:36     标题: 批处理可以实现在gmail邮箱地址中随机加点吗?

随机加点,不知道批处理可以实现吗?
GMAIL.com邮箱地址可以任意加点。我想通过批处理[email=pengyou86@gmail.com]pengyou86@gmail.com[/email]这个邮箱可以分成多少给子地址。

比如 :[email=p.engyou86@gmail.com]p.engyou86@gmail.com[/email]
            [email=pe.ngyou86@gmail.com]pe.ngyou86@gmail.com[/email]
            [email=pen.gyou86@gmail.com]pen.gyou86@gmail.com[/email]
            [email=peng.you86@gmail.com]peng.you86@gmail.com[/email]
            [email=peng.you86@gmail.com]peng.you86@gmail.com[/email]
            [email=p.e.n.g.y.o.u.8.6@gmail.com]p.e.n.g.y.o.u.8.6@gmail.com[/email]
            [email=p.engyou8.6@gmail.com]p.engyou8.6@gmail.com[/email]
可以在pengyou86之间任意加点都是子地址。那位朋友帮忙写一下希望列出的子地址不会重复  谢谢!

[ 本帖最后由 pengyou86 于 2009-3-6 00:04 编辑 ]
作者: pusofalse    时间: 2009-1-25 22:48

  1. @echo Off
  2. set /a n=%random% %% 9 + 1
  3. set "str=pengyou86@gmail.com"
  4. call echo %%str:~,%n%%%.%%str:~%n%%%
  5. pause>nul
复制代码

作者: defanive    时间: 2009-1-25 23:23

8+7+6+5+4+3+2+1=36种组合方式,枚举也不多吧。。。
而且最麻烦的问题,就是可以有多个点。。。
我就不说什么了,反正都是力气活。。。
还有,楼上的代码,可能会有[email]pengyou86.@gmail.com[/email]的情况,那个9改成8就可以了。。。
作者: pengyou86    时间: 2009-1-25 23:55

谢谢楼上两位。 新年好啊!
作者: pengyou86    时间: 2009-1-26 00:06     标题: 回复 2楼 的帖子

这个代码只能列出一个子地址,而且只能加一个点   
有什么方法全部列出或者导入指定
txt文本里面也行的

[ 本帖最后由 pengyou86 于 2009-1-26 00:08 编辑 ]
作者: pengyou86    时间: 2009-1-26 23:44

继续求助,麻烦了
作者: itrui    时间: 2009-1-27 13:13

C81+C82+C83+C84+C85+C86+C87+C88=8+28+56+70+70+56+28+8=324种组合
作者: wxcute    时间: 2009-1-27 14:16     标题: 应该算是排列组合问题

  1. @echo off
  2. setlocal enableDelayedExpansion
  3. set name=pengyou86
  4. :lp
  5. set/a nl+=1
  6. if not "!name:~%nl%!"=="" goto :lp
  7. set/a ml=nl-1
  8. call :showN name %ml%
  9. echo 名字%name%长度为%nl%,共有%num%个子地址。
  10. pause
  11. goto :eof
  12. :showN
  13. for /l %%a in (1 1 %2) do (
  14.  if not "!%1:~%%a,1!"=="." (
  15.   echo !%1:~,%%a!.!%1:~%%a!@gmail.com&set/anum+=1
  16.   set %11=!%1:~,%%a!.!%1:~%%a!
  17.   call :showN %11 %%a
  18.  )
  19. )
复制代码

[ 本帖最后由 wxcute 于 2009-1-27 14:18 编辑 ]
作者: defanive    时间: 2009-1-27 14:24

捏哦,那就是我算错了。。。

好像不是用P哦,是C捏。。。
作者: pengyou86    时间: 2009-1-27 20:52     标题: 回复 8楼 的帖子

谢谢!测试蛮好用的
作者: pengyou86    时间: 2009-1-27 21:08     标题: 回复 8楼 的帖子

怎么可以把计算出来的结果保存到123.txt里面呢?
作者: hxinhu12315    时间: 2009-1-28 09:33     标题: 回复 11楼 的帖子

echo !%1:~,%%a!.!%1:~%%a!@gmail.com&set/anum+=1
改成echo !%1:~,%%a!.!%1:~%%a!@gmail.com>>123.txt&set/anum+=1不就完了
作者: pengyou86    时间: 2009-1-28 12:59     标题: 回复 12楼 的帖子

谢谢 这个批处理太棒了
作者: pengyou86    时间: 2009-3-5 23:55

原帖由 wxcute 于 2009-1-27 14:16 发表
@echo off
setlocal enableDelayedExpansion
set name=pengyou86
:lp
set/a nl+=1
if not "!name:~%nl%!"=="" goto :lp
set/a ml=nl-1
call :showN name %ml%
echo 名字%name%长度为%nl%,共有%num%个子地址 ...


这样批处理弄出来的子地址有好多重复。汗!那位高手修改一下。让批处理别出现重复子地址
作者: wxcute    时间: 2009-3-6 12:55     标题: 经测试未发现一个重复,共 255 个

名字存在 sub_name.txt 文件中。
  1. @echo off>nul 3>sub_name.txt
  2. setlocal enableDelayedExpansion
  3. set name=pengyou86
  4. :lp
  5. set/a nl+=1
  6. if not "!name:~%nl%!"=="" goto :lp
  7. set/a ml=nl-1
  8. call :showN name %ml%
  9. echo 名字%name%长度为%nl%,共有%num%个子地址。
  10. goto :eof
  11. :showN
  12. for /l %%a in (1 1 %2) do (
  13.  if not "!%1:~%%a,1!"=="." (
  14.   echo !%1:~,%%a!.!%1:~%%a!@gmail.com&set/anum+=1
  15.   set %11=!%1:~,%%a!.!%1:~%%a!
  16.   call :showN %11 %%a
  17.  )
  18. )
复制代码

作者: pengyou86    时间: 2009-3-7 18:53     标题: 回复 15楼 的帖子

谢谢 测试可以的




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2