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

[文件操作] 批处理删除指定类型文件如何实现排除/保留/不删除指定文件

[复制链接]
发表于 2017-3-12 21:24:36 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-3-13 01:13 编辑

求教删除文件批处理
Windows\winsxs文件夹下,搜索删除所有prn*.inf,但是要保留prnms001和prnms002,这条批处理怎么写?
 楼主| 发表于 2017-3-12 21:25:43 | 显示全部楼层
prnms001.inf和prnms002.inf两个
发表于 2017-3-12 21:32:50 | 显示全部楼层
执行代码之前,请对winsxs文件夹做好备份。
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /a-d "%systemroot%\winsxs\prn*.inf"') do (
  3.     if "%%~nxi" neq "prnms001.inf" (
  4.         if "%%~nxi" neq "prnms002.inf" (
  5.             del /f /q "%%i"
  6.         )
  7.     )
  8. )
复制代码
 楼主| 发表于 2017-3-12 21:36:05 | 显示全部楼层
回复 3# GNU 非常感谢。
发表于 2017-3-13 12:04:23 | 显示全部楼层
@echo off
for /f "delims=" %%i in ('dir /b "%systemroot%\winsxs\prn*.inf"^|findstr /v "001 002"') do del /q "%%i"
发表于 2019-3-25 02:10:12 | 显示全部楼层
正好用到了,我做了一些修改,使代码通用了很多,可以用于各种场景了,本人新手,还请指教。

可以删除指定目录下的所有文件与文件夹,并且可以指定排除文件夹与文件
  1. ::设置盘符为xydroot
  2. set "xydroot=%~dp0"
  3. ::将盘符:/缩进为盘符:
  4. set "xydroot=%xydroot:~,-1%"
  5. ::指定目录
  6. pushd "%xydroot%"
  7. ::循环遍历指定目录内的所有文件夹并写入%%A(d,设为目录)
  8. for /f "delims=" %%A in ('dir /b /ad') do (
  9.     ::如果%%A不是bbb(不区分大小写)则
  10.     if /I not "%%A"=="bbb" (
  11.         ::如果%%A不是ccc(不区分大小写)则
  12.         if /I not "%%A"=="ccc" (
  13.             ::删除目录
  14.             rmdir /s /q "%%A"
  15.         )
  16.     )
  17. )
  18. ::循环遍历指定目录内的所有文件并写入%%A (-d,不含目录)
  19. for /f "delims=" %%A in ('dir /b /a-d') do (
  20.     ::如果%%A不是start.exe则
  21.     if /I not "%%A"=="start.exe" (
  22.         ::跳过一切障碍,强制删除文件
  23.         del "%%A" /f /q /a
  24.     )
  25. )
  26. ::指定目录结束
  27. popd
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 02:25 , Processed in 0.013548 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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