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

[文件操作] 批处理如何删除不存在指定扩展名/后缀名的文件的子文件里的所有文件

[复制链接]
发表于 2009-11-26 16:17:46 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-8-9 09:26 编辑

批处理查找当前目录下的所有的文件 如果查找子文件夹里没有后缀名abc的文件则删除改子文件夹下所有文件
发表于 2009-11-26 16:57:21 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s /b /ad') do (
  3. if not exist %%i\*.txt  del /f /q "%%i"\*)
  4. echo 处理成功
  5. pause
复制代码


这里的txt 就是你的 abc
发表于 2009-11-26 17:08:51 | 显示全部楼层
楼上的代码应该会有问题:
应该是if not exist "%%i\*.txt" del /f /q "%%i\*"
发表于 2009-11-26 17:29:43 | 显示全部楼层

回楼上

是路径空格的问题吗
可是我测试是成功的
if 的没引号==行
del 的不加引号不行
 楼主| 发表于 2009-11-26 17:33:05 | 显示全部楼层

回复 2楼 的帖子

要是改成 查找当前目录下的所有的文件 如果查找子文件夹里没有后缀名abc和后缀名def的文件则删除改子文件夹下所有文件   怎么改?
 楼主| 发表于 2009-11-26 17:34:15 | 显示全部楼层

回复 4楼 的帖子

vsbat 兄的代码是可以运行的  非常感谢!
发表于 2009-11-26 17:43:34 | 显示全部楼层
@echo off
for /f "delims=" %%i in ('dir /s /b /ad') do (
if not exist %%i\*.txt (if not exist %%i\*.bmp  del /f /q "%%i"\*))
echo 处理成功
pause

这个适用于 文件夹即没有bmp 又没有 txt 那么我就清空它
发表于 2009-11-26 17:46:31 | 显示全部楼层
@echo off
for /f "delims=" %%i in ('dir /s /b /ad') do (
if not exist %%i\*.txt     del /f /q "%%i"\*
if not exist %%i\*.bmp  del /f /q "%%i"\*)
echo 处理成功
pause

这个适用于 文件夹 没有 bmp 或 txt 那么就清空它
发表于 2009-11-26 17:54:18 | 显示全部楼层
DIR *.ABC&&DEL /Q /F *
发表于 2009-11-26 18:12:51 | 显示全部楼层

回复 9楼 的帖子

请问楼上的
你测试了没有
发表于 2009-11-26 18:58:20 | 显示全部楼层
太好了,我先学习了.
 楼主| 发表于 2009-11-27 00:40:46 | 显示全部楼层

回复 7楼 的帖子

非常感谢!!!
这样写行不行?
@echo off
for /f "delims=" %%i in ('dir /s /b /ad') do (
if not exist %%i\*.txt  if not exist %%i\*.bmp  del /f /q "%%i"\* )
echo 处理成功
pause
去掉括号  我运行了一下 也是可以的 不知道有没有语法错误
发表于 2009-11-27 19:31:28 | 显示全部楼层

回复 12楼 的帖子

实践是检验真理的唯一标准
既然运行成功
说明 这样可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 06:58 , Processed in 0.027967 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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