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

[文本处理] 批处理如何从文本中取出2个关键字开头的内容,并将2个关键字输出到一行?

[复制链接]
发表于 2012-2-1 10:26:52 | 显示全部楼层 |阅读模式
从邮件服务器上导出的内容如下,每行是用户的一个属性,我只需要取其中InternetAddress\FullName\mailfile三个属性,并把它的值输出到一个文本文件。
LocalAdmin:  
AvailableForDirSync:  1
CheckPassword:  0
PasswordChangeInterval:  0
PasswordGracePeriod:  0
我所编辑的脚本如下:
  1. set OW=
  2. set EM=
  3. set MF=
  4. setlocal enabledelayedexpansion

  5. for /F "eol=O tokens=1,2* delims=:" %%i in (d:\test\contact.txt)  do (
  6. if %%i==InternetAddress ( %EM%=%%j )
  7. if %%i==FullName ( %OW%=%%j )
  8. if %%i==MailFile ( %MF%=%%j )
  9. if "!MF!" NEQ ""  ( echo %OW%;%EM% >>storemail.txt|set %OW%=|set %EM%="" )
  10. )
复制代码
发现For语句根本不循环。
发表于 2012-2-1 10:47:02 | 显示全部楼层
LocalAdmin:  
AvailableForDirSync:  1
CheckPassword:  0
PasswordChangeInterval:  0
PasswordGracePeriod:  0


没有那三个属性啊InternetAddress\FullName\mailfile

请发完整。
发表于 2012-2-1 10:54:51 | 显示全部楼层

  1. @echo off
  2. (findstr /i "internetaddress fullname mailfile" a.txt)>b.txt
复制代码
 楼主| 发表于 2012-2-1 11:11:15 | 显示全部楼层
发全好长的!
FullName:  CN=NewCity
InternetAddress: Newcity@abc.com
MailFile: Newcity.psf
 楼主| 发表于 2012-2-1 11:13:19 | 显示全部楼层
另外3楼的做法不对,我要得是把这3行输出到一行。也就是说针对一个用户,把三个属性列为一行。如4楼所发信息,应该是CN=NewCity, Newcity@abc.com,Newcity.psf
发表于 2012-2-1 13:59:23 | 显示全部楼层
本帖最后由 lvsehuaxue 于 2012-2-1 14:01 编辑

  1. @echo off&setlocal enabledelayedexpansion
  2. (findstr /i "internetaddress fullname mailfile" a.txt)>$
  3. (for /f "tokens=1,2 delims=: " %%i in ($) do (
  4.     set /a n+=1
  5.     set v=!v!,%%j
  6.     if !n!==3 echo !v:~1!&set "v="&set n=0
  7. )>b.txt
复制代码

评分

参与人数 1PB +6 收起 理由
Hello123World + 6 乐于助人

查看全部评分

发表于 2012-2-7 17:24:45 | 显示全部楼层
回复 6# lvsehuaxue


    怎么不把$删除?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 14:37 , Processed in 0.020672 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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