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

[文本处理] 批处理怎样从文本中提取字符形成新文本?

[复制链接]
发表于 2011-9-20 14:46:07 | 显示全部楼层 |阅读模式
提取数据急需,谢谢大侠!

a.txt
V        C 41.42%(10v)        tand 0.036                C0        Ce        Tu        Loss        FOM        Vmax
V        C 49.4%(15v)        tand 0.029                C0        Ce        Tu        Loss        FOM        Vmax
V        C 53.9%(20v)        tand 0.028                C0        Ce        Tu        Loss        FOM        Vmax
V        C 57.13%(25v)        tand 0.029                C0        Ce        Tu        Loss        FOM        Vmax
效果如下:新文本
c.txt

41.42%(10v)   0.036
49.4%(15v)     0.029
53.9%(20v)     0.028
57.13%(25v)   0.029
发表于 2011-9-20 14:53:42 | 显示全部楼层
本帖最后由 hankerer 于 2011-9-20 15:41 编辑

win7环境
  1. @echo off
  2. SETLOCAL enabledelayedexpansion
  3. for /f "tokens=3,5 delims= " %%i in (a.txt) do (
  4. set "p=%%i %%j"
  5. echo !p!>>c.txt
  6. )
  7. pause
复制代码
 楼主| 发表于 2011-9-20 15:06:46 | 显示全部楼层
本帖最后由 morerlee 于 2011-9-20 15:15 编辑

回复 2# hankerer

出现的是下面的结果哦
0.036                C0        Ce        Tu        Loss        FOM        Vmax
0.029                C0        Ce        Tu        Loss        FOM        Vmax
0.028                C0        Ce        Tu        Loss        FOM        Vmax
0.029                C0        Ce        Tu        Loss        FOM        Vmax
发表于 2011-9-20 15:36:29 | 显示全部楼层
中间是空格分开的还是tab????
 楼主| 发表于 2011-9-20 15:44:40 | 显示全部楼层
回复 4# hankerer

Tab,反正就那么宽的距离,附件在后面,谢谢你咯先!
发表于 2011-9-20 15:49:07 | 显示全部楼层
  1. @echo off
  2. SETLOCAL enabledelayedexpansion
  3. for /f "tokens=3,5 delims=         " %%i in (a.txt) do (
  4. set "p=%%i %%j"
  5. echo !p!>>c.txt
  6. )
  7. pause
复制代码
 楼主| 发表于 2011-9-20 16:02:53 | 显示全部楼层
本帖最后由 morerlee 于 2011-9-20 16:08 编辑

回复 6# hankerer


    我用的是XP的系统 ,还是不行呀,你在你电脑上可以处理好么,我发了附件给你,你看下
  有的地方是空格,有的地方是Tab
发表于 2011-9-20 16:15:01 | 显示全部楼层
  1. 41.42%(10v) 0.036
  2. 49.4%(15v) 0.029
  3. 53.9%(20v) 0.028
  4. 57.13%(25v) 0.029
  5. 62.19%(30v) 0.041
  6. 63.86%(32v) 0.064
  7. 42.65%(10v) 0.039
复制代码
处理的很好
 楼主| 发表于 2011-9-20 16:34:58 | 显示全部楼层
本帖最后由 morerlee 于 2011-9-20 16:39 编辑

回复 8# hankerer


    就是要这个效果,怎么在我的电脑上处理不出来咧,delims= "  这里面是个空格还是Tab呀,我的里面的是的Tab,有的是空格,就出问题了,怎么把所有的都转换成空格或者Tab,按你第二个代码,如果文档里所有的地方都是Tab是成功的
发表于 2011-9-20 17:04:45 | 显示全部楼层

  1. @echo off
  2. (for /f "tokens=3,5" %%i in (a.txt) do echo,%%i  %%j)>c.txt
复制代码
for默认以空格和tab作为分隔符,所以没必要指定任何一个。

评分

参与人数 1技术 +1 收起 理由
Hello123World + 1 默认以空格和tab作为分隔符

查看全部评分

 楼主| 发表于 2011-9-20 18:08:08 | 显示全部楼层
谢谢二楼的朋友,更谢谢10楼的朋友
10楼的成功解决了我的问题,谢谢!
发表于 2011-9-20 20:04:26 | 显示全部楼层
for默认以空格和tab作为分隔符,所以没必要指定任何一个。
weichenxiehou 发表于 2011-9-20 17:04



    惭愧
发表于 2011-9-20 20:09:31 | 显示全部楼层
回复 12# hankerer


     FOR就可以解决了。因为他给出的例子比较有规律,用FOR最拿手了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 03:10 , Processed in 0.020000 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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