Board logo

标题: [文本处理] 批处理怎样从文本中提取字符形成新文本? [打印本页]

作者: morerlee    时间: 2011-9-20 14:46     标题: 批处理怎样从文本中提取字符形成新文本?

提取数据急需,谢谢大侠!

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
作者: hankerer    时间: 2011-9-20 14:53

本帖最后由 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
复制代码

作者: morerlee    时间: 2011-9-20 15:06

本帖最后由 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
作者: hankerer    时间: 2011-9-20 15:36

中间是空格分开的还是tab????
作者: morerlee    时间: 2011-9-20 15:44

回复 4# hankerer

Tab,反正就那么宽的距离,附件在后面,谢谢你咯先!
作者: hankerer    时间: 2011-9-20 15:49

  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
复制代码

作者: morerlee    时间: 2011-9-20 16:02

本帖最后由 morerlee 于 2011-9-20 16:08 编辑

回复 6# hankerer


    我用的是XP的系统 ,还是不行呀,你在你电脑上可以处理好么,我发了附件给你,你看下
  有的地方是空格,有的地方是Tab
作者: hankerer    时间: 2011-9-20 16:15

  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
复制代码
处理的很好
作者: morerlee    时间: 2011-9-20 16:34

本帖最后由 morerlee 于 2011-9-20 16:39 编辑

回复 8# hankerer


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

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

谢谢二楼的朋友,更谢谢10楼的朋友
10楼的成功解决了我的问题,谢谢!
作者: hankerer    时间: 2011-9-20 20:04

for默认以空格和tab作为分隔符,所以没必要指定任何一个。
weichenxiehou 发表于 2011-9-20 17:04



    惭愧
作者: cjiabing    时间: 2011-9-20 20:09

回复 12# hankerer


     FOR就可以解决了。因为他给出的例子比较有规律,用FOR最拿手了。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2