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

[文本处理] [己处理]批处理提取指定内容,请教代码??

[复制链接]
发表于 2012-10-6 00:07:35 | 显示全部楼层 |阅读模式
本帖最后由 keshun 于 2012-10-6 14:51 编辑

1.txt内容如下:
user=3233 bindlan=none profile=1M cn=张aa active=yes uplimit=1 modules=pppoe passwd=888888 ftplimit=0:0:0:0:0:0 expire_since=2012-12-10 maxlogin=1 downlimit=1 use_profile=yes bindmac=80-c1-6e-56-c0-21
user=2231 bindlan=none profile=1M cn=凌s uplimit=1 active=yes modules=pppoe passwd=345211 expire_since=2012-10-26 maxlogin=1 downlimit=1 use_profile=yes bindmac=00-e0-4c-ac-85-cf
user=2258 profile=1M bindlan=none cn=田ds active=yes uplimit=1 modules=pppoe passwd=123321 expire_since=2012-11-05 desc=- maxlogin=1 downlimit=1 use_profile=yes bindmac=00-e0-4c-06-ba-c2

2.txt内容如下:
user=3233 cn=张aa expire_since=2012-12-10
user=2231 cn=凌s expire_since=2013-01-26
user=2258 cn=田ds expire_since=2012-11-05

批处理对1.txt进行处理,提取指定内容输出到2.txt。

评分

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

查看全部评分

发表于 2012-10-6 09:15:22 | 显示全部楼层
试试
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (1.txt) do (
  3.   set "aa=%%a"
  4.   for %%b in ("!aa: =" "!") do (
  5.     set "bb=%%~b"
  6.     if /i "!bb:~,5!"=="user=" set /p=!bb! <nul
  7.     if /i "!bb:~,3!"=="cn=" set /p=!bb! <nul
  8.     if /i "!bb:~,13!"=="expire_since=" set /p=!bb!<nul
  9.   )
  10.   echo,
  11. ))>2.txt
复制代码

评分

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

查看全部评分

 楼主| 发表于 2012-10-6 12:34:40 | 显示全部楼层
本帖最后由 keshun 于 2012-10-6 12:38 编辑

回复 2# apang


    在此感谢二楼,谢谢!!

试过代码发现有个问题:
对1.txt的“cn=姓名”改成真实姓名(中文)时,代码会出错。

改后的1.txt
user=3233 bindlan=none profile=1M cn=张珠海 active=yes uplimit=1 modules=pppoe passwd=888888 ftplimit=0:0:0:0:0:0 expire_since=2012-12-10 maxlogin=1 downlimit=1 use_profile=yes bindmac=80-c1-6e-56-c0-21
user=2231 bindlan=none profile=1M cn=凌地 uplimit=1 active=yes modules=pppoe passwd=345211 expire_since=2012-10-26 maxlogin=1 downlimit=1 use_profile=yes bindmac=00-e0-4c-ac-85-cf
user=2258 profile=1M bindlan=none cn=田二月 active=yes uplimit=1 modules=pppoe passwd=123321 expire_since=2012-11-05 desc=- maxlogin=1 downlimit=1 use_profile=yes bindmac=00-e0-4c-06-ba-c2

输出后的2.txt
expire_since=2012-12-10
user=2231 cn=凌地 expire_since=2012-10-26
user=2258 expire_since=2012-11-05
发表于 2012-10-6 14:47:25 | 显示全部楼层
回复 3# keshun


    1.txt如果为utf-8编码,请改成ansi
 楼主| 发表于 2012-10-6 14:51:35 | 显示全部楼层
回复 4# apang


    谢谢,改了编码就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 15:17 , Processed in 0.017851 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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