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

[文本处理] 批处理怎么样可以按机号提取内容到新的文本?

[复制链接]
发表于 2015-10-7 22:44:04 | 显示全部楼层 |阅读模式
[文本处理] 批处理怎么样可以按机号提取内容到新的文本?

现在有1.txt格式如下
[A001]
2524524522        a123456
5858222257        a123456
[A002]
24542542345        a123456
25234523458        a123456
[A003]
2345345345        a123456
2345345453        a123456

怎么样可以提取A002号机的帐号到新的文本帐号.txt格式如下
24542542345----a123456
25234523458----a123456

怎么样可以用批处理实现
发表于 2015-10-7 23:27:51 | 显示全部楼层
本帖最后由 wankoilz 于 2015-10-7 23:31 编辑

练习awk:
  1. #&cls&@gawk -f %0 1.txt >账号.txt&exit
  2. /\[A002\]/,/\[A003\]/{a[++i]=$1"----"$2}
  3. END {for(j=2;j<i;j++) print a[j]}
复制代码
 楼主| 发表于 2015-10-7 23:37:08 | 显示全部楼层
回复 2# wankoilz


    可以用自带命令吗?
发表于 2015-10-7 23:54:51 | 显示全部楼层
简单用bat做了一个,通用性可能不太好:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3. if %%a==[A002] set f=1
  4. if %%a==[A003] set f=0
  5. if !f!==1 if not %%a==[A002] echo %%a
  6. )
  7. pause
复制代码
 楼主| 发表于 2015-10-8 00:00:45 | 显示全部楼层
回复 4# wankoilz


    你这个是显示A002号机一直到最后的内容了,我只要A002一台机的帐号 不要A003的内容
发表于 2015-10-8 00:02:40 | 显示全部楼层
我这里测试没问题,用的是你发出来的内容!
发表于 2015-10-8 00:04:09 | 显示全部楼层
纯批:
  1. @echo off
  2. (for /f "tokens=1*" %%a in (a.txt) do (
  3.         if %%b#==# (
  4.                 set "[A002]="
  5.                 set %%a=true
  6.         ) else (
  7.                 if defined [A002] echo %%a----%%b
  8.         )
  9. ))>b.txt
  10. pause
复制代码
发表于 2015-10-8 00:07:06 | 显示全部楼层
本帖最后由 wankoilz 于 2015-10-8 00:09 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3. set "s=%%a"
  4. if "!s:~0,6!"=="[A002]" set f=1
  5. if "!s:~0,6!"=="[A003]" set f=0
  6. if !f!==1 if not "!s:~0,6!"=="[A002]" echo %%a
  7. )
  8. pause
复制代码
楼上的代码思路真好!
发表于 2015-10-12 11:55:23 | 显示全部楼层
inifile比较容易处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 13:18 , Processed in 0.010154 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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