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

[文本处理] [已解决]批处理如何删除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 号后面是不带通过的,请不要看错。还有一点,就是消除的数量,望大师写的时候能详细点告诉我
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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. )
复制代码
1

评分人数

TOP

回复 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

TOP

回复 3# wwddhmh


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

TOP

返回列表