Board logo

标题: [文件操作] 批处理如何通过判断条件删除某个文件夹中的文件? [打印本页]

作者: jinyunnian    时间: 2023-3-3 10:55     标题: 批处理如何通过判断条件删除某个文件夹中的文件?

多个文件夹中其中一个文件夹中只包含多个【****~q75】文件。另一个文件夹中包含多个【****~q75】 和 【****~tplv-dy-aweme-imagesq75】。求助如何只删除第二个文件夹中 所有的【****~q75】不删除第一个文件夹中的。
作者: newswan    时间: 2023-3-3 11:24

  1. pushd 第二个文件夹
  2. del
  3. popd
复制代码

作者: jinyunnian    时间: 2023-3-3 11:38

由于是有多个文件夹如何判断那个文件夹只包含【****~q75】不操作。只操作包含【****~q75】 和 【****~tplv-dy-aweme-imagesq75】的文件夹呢
作者: buyiyang    时间: 2023-3-3 11:51

先备份测试
  1. for /d %%i in (*) do (
  2. if exist "%%i\*~tplv-dy-aweme-imagesq75" (del %%i\*~q75)
  3. )
  4. pause
复制代码

作者: 77七    时间: 2023-3-3 12:48

本帖最后由 77七 于 2023-3-3 13:21 编辑
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /a-d "*~tplv-dy-aweme-imagesq75"') do (
  3.         del "%%~dpi*~q75" 2>nul
  4. )
  5. pause
复制代码
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /a-d "*~tplv-dy-aweme-imagesq75"') do (
  3.         del "%%~dpi*~q75"
  4.         pause & exit
  5. )
复制代码

前面一句好像是干扰项...也就是删除*~tplv-dy-aweme-imagesq75 同路径下的*~q75
使用前先备份

第二段代码好像有点问题
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /a-d "*~tplv-dy-aweme-imagesq75"') do (
  3.         del "%%~dpi*~q75" 2>nul && (pause & exit)
  4. )
复制代码


这样应该更好一点
作者: qixiaobin0715    时间: 2023-3-3 13:02

回复 4# buyiyang
好像是楼主忘记提供文件扩展名了。应当是:
  1. for /d %%i in (*) do (
  2.     if exist "%%i\*~tplv-dy-aweme-imagesq75*" (
  3.         del "%%i\*~q75*"
  4.     )
  5. )
复制代码

作者: jinyunnian    时间: 2023-3-4 22:50

回复 6# qixiaobin0715


    感谢指导




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