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

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

本帖最后由 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。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

试试
  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

评分人数

TOP

本帖最后由 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

TOP

回复 3# keshun


    1.txt如果为utf-8编码,请改成ansi

TOP

回复 4# apang


    谢谢,改了编码就可以了

TOP

返回列表