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

[文本处理] [己解决]批处理怎样删除文件夹含指定字符串的文本

[复制链接]
发表于 2019-9-1 16:11:28 | 显示全部楼层 |阅读模式
在“存档”文件夹内有几百个文本,删除一些内含字符串“物品分布定义”的文本,求代码,谢谢!!!
发表于 2019-9-1 16:30:18 | 显示全部楼层
如果某个文件包含“物品分布定义”,删除这个文件本身。
如果某个文件包含“物品分布定义”,在这个文件里面删除“物品分布定义”这个字符串。

你需要的是哪种效果?
 楼主| 发表于 2019-9-1 16:53:27 | 显示全部楼层
本帖最后由 keshun 于 2019-9-1 17:53 编辑

回复 2# Batcher


    第1个,比如文件夹里有200个文本,有88个文本,每个前15行有包含“物品分布定义”要删除本身,剩下的文本有112个不含字符串。
发表于 2019-9-1 17:40:35 | 显示全部楼层
  1. @echo off
  2. for /r %%i in ( *.txt ) do (
  3. del /s/q *物品分布定义.txt
  4. del /s/q 物品分布定义*.txt
  5. )
  6. pause
复制代码
先备份“存档”文件夹
再把批处理放到“存档”文件夹里运行
 楼主| 发表于 2019-9-1 17:55:27 | 显示全部楼层
回复 4# impk


    谢谢,不是文本名含字符串,而是文本前15行内含有字符串。
发表于 2019-9-1 18:12:07 | 显示全部楼层
本帖最后由 impk 于 2019-9-1 18:23 编辑

回复 5# keshun
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f %%a in ( 'dir /a-d /b *.txt' ) do (
  3. type %%a|findstr /c:"物品分布定义" && set var=%%a
  4. del /s/q !var!
  5. )
  6. pause
复制代码
先备份,再试试这个

在我机器上测试
像1.txt和a.txt这种可以正常删除
像“新建 文本文档.txt”这种名称中有空格的无法删除

评分

参与人数 1技术 +1 收起 理由
keshun + 1 谢谢

查看全部评分

发表于 2019-9-1 18:19:20 | 显示全部楼层
  1. @echo off
  2. pushd "%~dp0"
  3. for /f "delims=" %%A in ('findstr /lm "物品分布定义" *.txt') do (
  4.   del /f /q "%%A"
  5. )
  6. popd
  7. pause
  8. exit /b
复制代码

评分

参与人数 1技术 +1 收起 理由
keshun + 1 谢谢

查看全部评分

发表于 2019-9-1 21:52:08 | 显示全部楼层
不是说前15行吗
  1. Get-ChildItem *.txt  | ? { !$_.PSIsContainer } | ? {
  2. [string]$str = Get-Content $_  -TotalCount 15
  3. if ($str.contains("ABC")) {
  4.     $file = $_.FullName
  5.     Remove-Item $file
  6. }
  7. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 08:47 , Processed in 0.022841 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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