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

[文本处理] {已解决}批处理如何提取第4、5个字符为0的行?

[复制链接]
发表于 2016-3-4 18:43:55 | 显示全部楼层 |阅读模式
本帖最后由 172788876 于 2017-1-31 10:16 编辑

如题:从一个文本里面提取指定的内容,建立新的列表
文本内容
2180  "重击"
2190  "警觉"
2200  "勇气"
52790  "秘法·逐鹿九州"
52780  "秘法·千变玄机"
47490  "秘法·百无禁忌"
47491  "秘法·百无禁忌"
47492  " 
47470  "秘法·九霄
提取第四列,第五列为 0 的这一行建立新的txt列表
新列表
2180  "重击"
2190  "警觉"
2200  "勇气"
52790  "秘法·逐鹿九州"
52780  "秘法·千变玄机"
47490  "秘法·百无禁忌"
47470  "秘法·九霄

谢谢大神了。。。

评分

参与人数 1PB -4 收起 理由
pcl_test -4 未按版规发帖

查看全部评分

 楼主| 发表于 2016-3-4 20:31:53 | 显示全部楼层
回复 1# 172788876
噢噢,么有下次了。。
发表于 2016-3-4 20:52:43 | 显示全部楼层
  1. @echo off
  2. echo.>3.txt
  3. setlocal enabledelayedexpansion
  4. for /f "delims=;" %%i in (1.txt) do (
  5.         set a=%%i
  6.         set b=!a:~3,1!
  7.         if !b!==0 echo !a!>>3.txt
  8.         set c=!a:~4,1!
  9.         if !c!==0 echo !a!>>3.txt)
复制代码
1.txt为原文件,3.txt为按你要求提取后的文件
这个代码可以可以达到你的要求。

但for里面的语句我感觉应该还可以再精简的,但我自己减了直接运行出错了。。希望有大侠能指点下

评分

参与人数 1技术 +1 收起 理由
172788876 + 1 乐于助人

查看全部评分

发表于 2016-3-4 22:38:14 | 显示全部楼层
回复 4# codegay


    findstr不熟悉,我要再多试试
    我for代码中截断语句用了3行来完成。能不能跟在非循环语句中一样,直接一句搞定?

评分

参与人数 2技术 +2 收起 理由
172788876 + 1 乐于助人
codegay + 1 1

查看全部评分

发表于 2016-3-5 08:26:02 | 显示全部楼层
findstr -rc:"^[0-9][0-9][0-9][0-9]*0" 1.txt
 楼主| 发表于 2016-3-5 09:23:19 | 显示全部楼层
回复 3# sishentibu
谢谢!!!
 楼主| 发表于 2016-3-5 09:23:40 | 显示全部楼层
回复 5# codegay
谢谢!!!
 楼主| 发表于 2016-3-5 09:30:17 | 显示全部楼层
回复 3# sishentibu
不知道咋回事,还是无效。。执行命令出来,是空白的文档
发表于 2016-3-5 10:08:55 | 显示全部楼层
python

  1. [open("2.txt","a+").write(r) for r in open("1.txt",encoding="utf-8").readlines() if len(r.split(" ")[0])>=4 and r.split(" ")[0].endswith("0")]
复制代码
 楼主| 发表于 2016-3-5 11:38:41 | 显示全部楼层
回复 9# codegay
噢噢,谢了
 楼主| 发表于 2016-3-5 11:45:20 | 显示全部楼层
回复 9# codegay
可以不用第三方插件吗???
谢了,
帮忙做个。。。
发表于 2016-3-5 11:59:41 | 显示全部楼层
回复 8# 172788876

我今天又测试了下,是可以的啊
能否详细描述下你的操作?
 楼主| 发表于 2016-3-5 16:15:45 | 显示全部楼层
回复 12# sishentibu
那我发给你文档吧。。
http://pan.baidu.com/s/1jGPEZPG
谢谢了
发表于 2016-3-5 19:48:07 | 显示全部楼层
本帖最后由 sishentibu 于 2016-3-5 19:49 编辑

回复 13# 172788876


    把你的文档转码下就可以读取了、
我自己用代码运行完了后,发现好多的干扰项
按我的理解,你想要的是类似需要的,然后序号末尾是0的项吧?
然后我又加了个判断
  1.     @echo off
  2.     echo.>3.txt
  3.     setlocal enabledelayedexpansion
  4.     for /f "delims=;" %%i in (1.txt) do (
  5.             set a=%%i
  6.             set b=!a:~3,1!
  7.         set c=!a:~4,1!
  8.         set d=!a:~5,1!
  9.      if !b!==0 (if !c!==^  echo !a!>>3.txt)
  10.      if !c!==0 (if !d!==^  echo !a!>>3.txt))
复制代码
http://pan.baidu.com/s/1bogixm3
发表于 2016-3-5 20:58:50 | 显示全部楼层
本帖最后由 pcl_test 于 2016-7-18 13:37 编辑
  1. mshta http://bathome.net/s/hta/ type('A.txt').match(/^\d{3,4}0\s+.+/g).join('\r\n')>B.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 17:55 , Processed in 0.019688 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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