无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2682|回复: 5
打印 上一主题 下一主题

这个文本如何用批提取

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-15 11:58:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. USERNAME                                                                        
  2. ------------------------------                                                  
  3. OUTLN                                                                           
  4. WMSYS                                                                           
  5. ORDSYS                                                                          
  6. ORDPLUGINS                                                                     
  7. MDSYS                                                                           
  8. CTXSYS                                                                          
  9. QS_ES                                                                           
  10. QS_WS                                                                           
  11. QS                                                                              
  12. QS_ADM                                                                          
  13. SH                                                                              

  14. USERNAME                                                                        
  15. ------------------------------                                                  
  16. PM                                                                              
  17. OE                                                                              
  18. HR                                                                              
  19. RMAN                                                                           
  20. QS_CS                                                                           
  21. QS_CB                                                                           
  22. QS_CBADM                                                                        
  23. QS_OS                                                                           
  24. XDB                                                                             
  25. ANONYMOUS                                                                       
  26. WKSYS                                                                           

  27. USERNAME                                                                        
  28. ------------------------------                                                  
  29. WKPROXY                                                                        
  30. ODM                                                                             
  31. ODM_MTR                                                                        
  32. OLAPSYS                                                                        

  33. 已选择37行。
复制代码
有这么个txt文件,想提取第一个------------------------------OUTLN到HS的内容并显示在批处理运行界面上,后面的都不要,应该怎么提取?行数不确定。

[ 本帖最后由 yjd 于 2011-6-15 17:06 编辑 ]
2#
发表于 2011-6-15 14:11:39 | 只看该作者
你试试,在批群里帮你问的(你上面贴子后面那句的HS应该是SH吧)
  1. @echo off
  2. set output=false
  3. setlocal enabledelayedexpansion
  4. for /f %%i in (a.txt) do (
  5.         set "line=%%i"
  6.         if "!line!"=="OUTLN" set output=true
  7.         if "!output!"=="true" echo !line!
  8.         if "!line!"=="SH" goto end
  9. )
  10. :end
  11. pause
复制代码

[ 本帖最后由 lanzl 于 2011-6-15 18:48 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2011-6-15 15:40:23 | 只看该作者
lanzl ( 金 手 指 )

谢谢!
现在才发现我发的问题少说了一个,
就是头和尾也不是固定的,不同服务器的库用户多少和个数不同所以我才说行数不确定,而且用户不同他排序就不同比如:
1服务器:
12
123
1234
2服务器:
q1
q11
q123
-----------------------------------------------------------------
现在条件改为这个降序排序,而且发现每一格都是11个用户。您再帮我问问

  1. USERNAME                          USER_ID
  2. ------------------------------ ----------
  3. QS_CBADM                               56
  4. QS_OS                                  55
  5. QS_ES                                  54
  6. QS_WS                                  53
  7. QS                                     52
  8. QS_ADM                                 51
  9. SH                                     49
  10. PM                                     48
  11. OE                                     47
  12. HR                                     46
  13. OLAPSYS                                44

  14. USERNAME                          USER_ID
  15. ------------------------------ ----------
  16. ODM_MTR                                43
  17. ODM                                    42
  18. WKPROXY                                40
  19. WKSYS                                  39
  20. ANONYMOUS                              36
  21. XDB                                    35
  22. CTXSYS                                 33
  23. MDSYS                                  32
  24. ORDPLUGINS                             31
  25. ORDSYS                                 30
  26. WMSYS                                  21

  27. USERNAME                          USER_ID
  28. ------------------------------ ----------
复制代码

做了降序排序,然后提取第一个------------------------------ ----------后面的11行内容(如果能把后面数字丢弃更好,数字不固定有可能1、2、3位不等不能就算了)
跟之前不同现在行数固定,但用户名前后不一定固定。
回复

使用道具 举报

4#
 楼主| 发表于 2011-6-15 15:46:56 | 只看该作者
可以直接从第4行取到14行,这个for /f 到是可以实现就是要剔除后面的数字好像没啥特征码可以操作?
回复

使用道具 举报

5#
发表于 2011-6-15 16:46:33 | 只看该作者
原帖由 yjd 于 2011-6-15 15:46 发表
可以直接从第4行取到14行,这个for /f 到是可以实现就是要剔除后面的数字好像没啥特征码可以操作?



你是要这样吗?这样在你所要提取的字符中是不能有空格的哦
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for /f "skip=2 " %%a in (a.txt) do (
  5. echo %%a
  6. set /a n=!n!+1
  7. if !n!==11 goto end
  8. )
  9. :end
  10. pause
复制代码




skip=2 (第三行开始)
if !n!==11(提取到从上面算起的后11行)

[ 本帖最后由 lanzl 于 2011-6-15 18:48 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2011-6-15 17:05:40 | 只看该作者
lanzl ( 金 手 指 )

多谢了!
刚刚自己也试出来了。
@echo off
setlocal enabledelayedexpansion
for /f "skip=3" %%a in (%temp%\users.tmp) do (
set /a n+=1
if !n! leq 11 (echo %%a) else (goto end)
)
:end
pause
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-9 11:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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