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

回复 3# 66899981

或用以下方法,把 一长串匹配数 填入 for...() 里,遍历提取逐一删除...
  1. echo off & for %%k in (4 20 26 70 07) do (
  2.    find /v "|%%k|" data.txt|more +2>0.0
  3.    move /y 0.0 data.txt
  4. )
  5. pause&exit/b
复制代码

TOP

本帖最后由 aloha20200628 于 2024-10-27 11:13 编辑

回复 3# 66899981

直接用 findstr 的 ‘逻辑或’ 匹配模式,可删除包含 |4| 或 |5| 或 |10000| 的数据行...
  1. echo off &findstr /lv "|4| |05| |10000|" data.txt>0.0
  2. move /y 0.0 data.txt
  3. pause&exit/b
复制代码

TOP

回复  66899981
aloha20200628 发表于 2024-10-27 09:29



    非常感谢您,这个|04| |05|对比的非常多 这种写法 运行对比数据少的少可以 只要超出一定额度 就不行了例如|05|。。。。|10000|的对比执行就无效了

TOP

本帖最后由 aloha20200628 于 2024-10-27 11:03 编辑

回复 1# 66899981

批处的胃口限于每行8K,无须让findstr喂食了...
  1. echo off &findstr /lv "|4|" data.txt>0.0
  2. move /y 0.0 data.txt
  3. pause&exit/b
复制代码
或改用 find 亦可...
  1. echo off &find /v "|4|" data.txt|more +2>0.0
  2. move /y 0.0 data.txt
  3. pause&exit/b
复制代码

TOP

返回列表