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

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

[复制链接]
发表于 2010-8-16 00:07:30 | 显示全部楼层 |阅读模式
比如 :l.ibinglibinglibing890@gmail.com
            li.binglibinglibing890@gmail.com
            libi.nglibinglibing890@gmail.com
            libin.glibinglibing890@gmail.com
            libingli.binglibing890@gmail.com
            libinglibin.glibing890@gmail.com
            libinglibinglib.ing890@gmail.com
可以在libinglibinglibing890之间任意加点都是子地址。那位朋友帮忙写一下希望列出的子地址不会重复  谢谢
我用论坛里一个朋友写的,处理我这个,半天不动,请高手帮助

[ 本帖最后由 jonm158 于 2010-8-18 21:36 编辑 ]

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2010-8-16 09:09:59 | 显示全部楼层
你用的哪个?能否贴出来看看?
发表于 2010-8-16 12:18:04 | 显示全部楼层
2楼没看懂,意思就是:我要告诉别人我的邮箱地址如:libingli.binglibing890@gmail.com,要怎样把这一行字加进批处理文件里去,请解答一下,象这样的事情很多的,如果能写,就方便多了。

评分

参与人数 1PB +3 收起 理由
CrLf + 3 乐于助人

查看全部评分

发表于 2010-8-16 12:54:20 | 显示全部楼层
3楼没看懂,楼主说了:“我用论坛里一个朋友写的,处理我这个,半天不动”
发表于 2010-8-16 13:11:54 | 显示全部楼层

回复 1楼 的帖子

点的个数有限制吗?
没有限制就按顺序加呗 遇到@ 就结束
a.bcd
ab.cd
abc.d
这样子吗?
 楼主| 发表于 2010-8-16 19:23:53 | 显示全部楼层
点的个数没有限制,谢谢各位高手朋友
我用下面这个批处理试过,不动
  1. @echo off>nul 3>sub_name.txt
  2. setlocal enableDelayedExpansion
  3. set name=libinglibinglibing890
  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. )
复制代码
请高手改进
发表于 2010-8-16 23:02:15 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2010-8-17 11:27:25 | 显示全部楼层
谢谢CUER的指导,
但这句代码怎么用还看懂
 楼主| 发表于 2010-8-17 11:29:32 | 显示全部楼层
请各位高手们再指导指导,谢谢
发表于 2010-8-17 11:36:37 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set str=abcd
  4. call :act "%str:~0,1%" "%str:~1%"
  5. :::call :func %StrChoose% %StrHave%
  6. pause
  7. exit

  8. :act
  9. setlocal
  10. set tmpstr=%~2
  11. if "%~2"=="" (
  12.    echo %~1
  13.    goto :eof
  14. )
  15. call :act "%~1.!tmpstr:~0,1!" "!tmpstr:~1!"
  16. call :act "%~1!tmpstr:~0,1!" "!tmpstr:~1!"
  17. endlocal
复制代码
测试的字符串是abcd,在其中间插入点
a.b.c.d
a.b.cd
a.bc.d
a.bcd
ab.c.d
ab.cd
abc.d
abcd
请按任意键继续. . .



我是利用组合,
每一个位置:存在与不存在点  的情况构成不同的组合,
4个字符之间有三个地方可插入点, 那么组合的个数就是 2的三次方=8

改掉字符串,试试吧
发表于 2010-8-17 11:41:08 | 显示全部楼层
libinglibinglibing890   
21个字符
=.= 我杯具了,你的那个地址的字符串的插入点的组合个数是:
2的20次方: 1048576
用递归的方法效率超低……

[ 本帖最后由 523066680 于 2010-8-18 17:32 编辑 ]
发表于 2010-8-17 11:53:46 | 显示全部楼层

回复 8楼 的帖子

评分

参与人数 1PB +3 收起 理由
CrLf + 3 乐于助人

查看全部评分

发表于 2010-8-17 12:04:26 | 显示全部楼层
那么,如果gawk 可以不重复地插入任意个点并枚举,代码也很短吗?
好奇啊。
 楼主| 发表于 2010-8-17 12:41:44 | 显示全部楼层
谢谢各位高手,我先去试试了
 楼主| 发表于 2010-8-17 12:50:20 | 显示全部楼层
管理说的那个工具,以下了,但还是不清楚怎么用,还是要请高手指导,谢谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 15:34 , Processed in 0.011558 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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