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

[文本处理] 批处理可以实现在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 编辑 ]

  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
复制代码
心绪平和,眼藏静谧。

TOP

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

TOP

谢谢楼上两位。 新年好啊!

TOP

回复 2楼 的帖子

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

[ 本帖最后由 pengyou86 于 2009-1-26 00:08 编辑 ]

TOP

继续求助,麻烦了

TOP

C81+C82+C83+C84+C85+C86+C87+C88=8+28+56+70+70+56+28+8=324种组合

TOP

应该算是排列组合问题

  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 编辑 ]

TOP

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

好像不是用P哦,是C捏。。。

TOP

回复 8楼 的帖子

谢谢!测试蛮好用的

TOP

回复 8楼 的帖子

怎么可以把计算出来的结果保存到123.txt里面呢?

TOP

回复 11楼 的帖子

echo !%1:~,%%a!.!%1:~%%a!@gmail.com&set/anum+=1
改成echo !%1:~,%%a!.!%1:~%%a!@gmail.com>>123.txt&set/anum+=1不就完了

TOP

回复 12楼 的帖子

谢谢 这个批处理太棒了

TOP

原帖由 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%个子地址 ...


这样批处理弄出来的子地址有好多重复。汗!那位高手修改一下。让批处理别出现重复子地址

TOP

经测试未发现一个重复,共 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. )
复制代码

TOP

返回列表