Board logo

标题: [文本处理] [已解决]BAT批量删除文件里没有“分页导航”字符串的文件 [打印本页]

作者: DDDYJQ1    时间: 2020-12-7 18:53     标题: [已解决]BAT批量删除文件里没有“分页导航”字符串的文件

以下代码可以批量删除文件里有“分页导航”字符串的文件
  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
复制代码
现在想批量删除文件里没有“分页导航”字符串的文件,请问一下要怎改?先谢了!
作者: qixiaobin0715    时间: 2020-12-7 20:00

回复 1# DDDYJQ1
findstr /lmv
作者: DDDYJQ1    时间: 2020-12-7 20:13

谢谢,是这样吗?
@echo off
pushd "%~dp0"
for /f "delims=" %%A in ('findstr /lmv "分页导航" *.txt') do (
  del /f /q "%%A"
)
popd
pause
exit /b
所有文件一个不留全删除了
作者: qixiaobin0715    时间: 2020-12-7 20:49

本帖最后由 qixiaobin0715 于 2020-12-8 08:47 编辑

回复 3# DDDYJQ1
未测试
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('findstr /lm "分页导航" *.txt') do (
  4. set _%%a=true
  5. )
  6. for %%i in (*.txt) do (
  7. if not defined _%%i del /f /q "%%i"
  8. )
  9. pause
复制代码

作者: WHY    时间: 2020-12-7 21:30

这样也可以,用到了临时文件
  1. @echo off
  2. findstr /im "分页导航" *.txt > a.~tmp
  3. for /f "delims=" %%i in ('dir /b *.txt ^| findstr /v /x /g:a.~tmp') do (
  4.     echo %%i
  5. )
  6. pause
复制代码

作者: DDDYJQ1    时间: 2020-12-7 21:34

谢谢,都可以了,谢谢




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