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

[文本处理] 批处理怎样从某一行开始提取数据?

[复制链接]
 楼主| 发表于 2024-5-6 14:15:46 | 显示全部楼层
回复 14# qixiaobin0715
  1. @echo off
  2. (for /f "delims= usebackq tokens=1-2" %%i in (999.txt) do (
  3.     for /f %%j in ("%%i") do (
  4.           if defined n echo,%%i %%j  %%k   
  5.           if "%%j"=="IP" set n=true
  6.     )
  7.     :dizzy:
  8. ))>new_1.txt
  9. pause
复制代码
老师,比如说,我想提取两列,怎么提不出来呢,
发表于 2024-5-6 14:23:16 | 显示全部楼层
回复 16# yujw668
  1. @echo off
  2. cd /d "%~dp0"
  3. set "FileOld=999.txt"
  4. set "FileNew=222.txt"

  5. for /f "delims=:" %%i in ('findstr /n /i /b "IP" "%FileOld%"') do (
  6.     call :GetCol %%i
  7.     exit /b
  8. )

  9. :GetCol
  10. (for /f "skip=%1 tokens=1,2" %%a in ('type "%FileOld%"') do (
  11.     echo %%a %%b
  12. ))>"%FileNew%"
复制代码
 楼主| 发表于 2024-5-6 14:23:30 | 显示全部楼层
提取前
******************************************************************************
* Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*
* Without the owner's prior written consent,                                 *
* no decompiling or reverse-engineering shall be allowed.                    *
******************************************************************************

login: admin
Password:
<H3C>display arp
  Type: S-Static   D-Dynamic   O-Openflow   R-Rule   M-Multiport  I-Invalid
IP address       MAC address    SVLAN/VSI Interface/Link ID        Aging Type  
10.80.31.1       00e0-6724-f7ff 31        GE1/0/1                  17    D     
10.80.31.73      1c7d-2242-650d 31        GE1/0/1                  19    D     
10.80.31.77      60fb-008a-53e0 31        GE1/0/1                  18    D     
10.80.31.81      d268-51d2-3ea5 31        GE1/0/1                  20    D     
10.80.31.84      9258-4c72-39a4 31        GE1/0/1                  5     D     
10.80.31.85      66b1-48a1-1a26 31        GE1/0/1                  3     D     
10.80.31.86      d4f0-ea5e-73c9 31        GE1/0/1                  3     D     
10.80.31.97      2c0d-a754-3166 31        GE1/0/1                  20    D     
10.80.31.231     000c-2906-bd93 31        GE1/0/1                  5     D     

提取后

10.80.31.1       00e0-6724-f7ff 31        GE1/0/1                  17    D      10.80.31.1  %k   
10.80.31.73      1c7d-2242-650d 31        GE1/0/1                  19    D      10.80.31.73  %k   
10.80.31.77      60fb-008a-53e0 31        GE1/0/1                  18    D      10.80.31.77  %k   
10.80.31.81      d268-51d2-3ea5 31        GE1/0/1                  20    D      10.80.31.81  %k   
10.80.31.84      9258-4c72-39a4 31        GE1/0/1                  5     D      10.80.31.84  %k   
10.80.31.85      66b1-48a1-1a26 31        GE1/0/1                  3     D      10.80.31.85  %k   
10.80.31.86      d4f0-ea5e-73c9 31        GE1/0/1                  3     D      10.80.31.86  %k   
10.80.31.97      2c0d-a754-3166 31        GE1/0/1                  20    D      10.80.31.97  %k   
10.80.31.231     000c-2906-bd93 31        GE1/0/1                  5     D      10.80.31.231  %k

只想提取
IP 和 maC这两列
发表于 2024-5-6 14:26:57 | 显示全部楼层
列与列之间是制表符分隔吗?
 楼主| 发表于 2024-5-6 14:28:37 | 显示全部楼层
列与列之间是制表符分隔吗?
qixiaobin0715 发表于 2024-5-6 14:26



    不是,我看着好像就是空格
发表于 2024-5-6 14:35:12 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2024-5-9 14:49 编辑

你传一个文件到网盘看看,不能“好像”,否则会得到错误的结果。
或者将复制的内容放到代码栏中。
 楼主| 发表于 2024-5-6 15:12:00 | 显示全部楼层
或者将复制的内容放到代码栏中。
qixiaobin0715 发表于 2024-5-6 14:35



    链接:https://pan.baidu.com/s/1C1-_xKCpMUtlmr--Q2XMRw
提取码:zzrw
--来自百度网盘超级会员V7的分享
发表于 2024-5-6 15:26:16 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=1-6*" %%a in (20240430-183539.log) do (
  3.     if defined n echo,%%a       %%b %%c
  4.     if /i "%%a"=="ip" set n=true
  5. )
  6. pause
复制代码
 楼主| 发表于 2024-5-8 15:02:25 | 显示全部楼层
qixiaobin0715 发表于 2024-5-6 15:26



    好的,谢谢老师,已经测试了,都正常
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 01:57 , Processed in 0.019585 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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