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

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

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

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

TOP

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

TOP

中间是空格分开的还是tab????

TOP

回复 4# hankerer

Tab,反正就那么宽的距离,附件在后面,谢谢你咯先!

TOP

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

TOP

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

回复 6# hankerer


    我用的是XP的系统 ,还是不行呀,你在你电脑上可以处理好么,我发了附件给你,你看下
  有的地方是空格,有的地方是Tab

TOP

  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
复制代码
处理的很好

TOP

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

回复 8# hankerer


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

TOP

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

评分人数

看得多说得多,远比不上写得多。

TOP

谢谢二楼的朋友,更谢谢10楼的朋友
10楼的成功解决了我的问题,谢谢!

TOP

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



    惭愧

TOP

回复 12# hankerer


     FOR就可以解决了。因为他给出的例子比较有规律,用FOR最拿手了。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

返回列表