Board logo

标题: [文本处理] [已解决]批处理如何删除txt文本里含有特定字符串的最后几行里的该特定字符串 [打印本页]

作者: wwddhmh    时间: 2014-8-1 01:54     标题: [已解决]批处理如何删除txt文本里含有特定字符串的最后几行里的该特定字符串

本帖最后由 pcl_test 于 2016-7-18 19:32 编辑

只要BAT。其他模块的不需要

如题:我的指定路径下的txt文本   D:\test\记录.txt    内容如下
黄小明-1号-通过
戴小军-2号-通过
胡志明-3号-通过
李小燕-4号-通过
杜明-5号-通过
黄东明-6号-通过
李红-7号-通过
谢立鸿-8号-
黄东明-9号-
习志-10号-
胡淘-11号-
李小萧-12号-

当然文本不只这几行,下面还有无数行就不一一例举,我想通过BAT,实现从后往上,去除指定数量的“通过”。意思就是说,我想去除3个通过,就是把5号,6号,7号,后面的“通过”去除,重要提示下,,后面那些,8 9 10 11 12 号后面是不带通过的,请不要看错。还有一点,就是消除的数量,望大师写的时候能详细点告诉我
作者: CrLf    时间: 2014-8-1 15:44

本帖最后由 CrLf 于 2014-8-1 17:55 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set "file=D:\test\记录.txt"
  3. %1 %0 :|sort /+65535 /o "!file!"&pause&exit
  4. for /f "delims=" %%a in ('sort /+65535 "!file!"') do (
  5.    set "str=%%a"
  6.    if "!str:通过=!" neq "!str!" (
  7.       if !count! lss 3 set str=!str:通过=!
  8.       set /a "count+=1"
  9.    )
  10.    echo !str!
  11. )
复制代码

作者: wwddhmh    时间: 2014-8-1 17:18

回复 2# CrLf

请问如果是下面这样该如何弄
黄小明-1号a通过
戴小军-2号b通过
胡志明-3号c通过
李小燕-4号d通过
杜明-5号-e通过
黄东明-6号-f通过
李红-7号-g通过
谢立鸿-8号-h
黄东明-9号-i
习志-10号-j
胡淘-11号-k
李小萧-12号-k
作者: CrLf    时间: 2014-8-1 17:51

回复 3# wwddhmh


    已修改,以后求助时最好描述完整一点,避免返工




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