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

[文件操作] 批处理如何删除指定文件夹内除指定文件之外的所有文件

[复制链接]
发表于 2016-9-14 09:12:58 | 显示全部楼层 |阅读模式
批处理删除,但是保留特定内容
主要用在服务器维护方面 !
vps上很多网站被人挂马了!
大量的无用内容!
经过总结  ,只能 保留核心特定的内容!

大概思路是这样的!

在一个文件夹内 无数个乱七八糟的文件 ,  现在要求只保留 index.html    和 index.htm 和gjz.mdb  其他统统删除!
发表于 2016-9-14 09:44:40 | 显示全部楼层
本帖最后由 dreamer 于 2016-9-14 09:46 编辑

Set index.html=.
Set index.htm=.
Set gjz.mdb=.
for /r "指定的路徑" %%i in (*) Do If Not Defined "%%~nxi" Del /q "%%i"
 楼主| 发表于 2016-9-14 14:16:09 | 显示全部楼层
回复 2# dreamer


        不行啊  ,运行了  被全部清空了 包括需要的,   把好的文件都删了 !!!!
 楼主| 发表于 2016-9-14 15:32:23 | 显示全部楼层
有人帮我看一下吗?
发表于 2016-9-14 16:05:26 | 显示全部楼层
for /r "指定的路徑" %%i in (*) Do If Not Defined "%%~nxi" Del /q "%%i"
改成:
for /r "指定的路徑" %%i in (*) Do If Not Defined %%~nxi Del /q "%%i"
 楼主| 发表于 2016-9-14 16:10:31 | 显示全部楼层
回复 5# flyinnet9


    谢谢 这次好像是对的! 刚刚那个仁兄害惨我了  ,误删了好多 而且是不进回收站的!  哭晕在厕所!
发表于 2016-9-14 18:58:41 | 显示全部楼层
回复 6# kongzhezhi


    噁,抱歉.........
发表于 2016-9-14 19:22:25 | 显示全部楼层
重要数据先备份,运行代码先测试,这是起码的常识。不能把责任全推给别人的。
 楼主| 发表于 2016-9-14 19:23:40 | 显示全部楼层
回复 8# WHY


    小范围受灾  ,  谢谢提醒 ,下次一定注意
发表于 2016-9-14 19:24:01 | 显示全部楼层
PowerShell 可以这样:
  1. dir -Path 'D:\Test' -Include *.* -Exclude @('index.htm*', 'gjz.mdb') -Recurse | del
复制代码
发表于 2016-9-14 23:37:28 | 显示全部楼层
  1. @echo off
  2. powershell -c "Get-ChildItem -Path D:\Test -Exclude index.htm*, gjz.mdb -Recurse | Remove-Item"
复制代码
发表于 2021-12-11 23:26:03 | 显示全部楼层
【问题描述】

怎么用cmd批处理删除目录下指定文件以外的文件?
多个目录下只想保留图片

【解决方案】
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /s /a-d ^| findstr /i /v /e /c:".jpg" /c:".png" /c:".gif" /c:".bmp"') do (
  4.     if "%%i" neq "%~f0" (
  5.         REM 如果显示结果没问题,请把下面的 echo 命令删掉再执行
  6.         echo del /f /q /a "%%i"
  7.     )
  8. )
  9. pause
复制代码
发表于 2021-12-13 16:51:43 | 显示全部楼层
@echo off
set /p mmd="总目录路径(绝对路径)"
cd /d %mmd%
for /f "tokens=*" %%i in ('dir /s /b /a-d *.*') do (
   if not "%%~nxi"=="index.html" (
        if not "%%~nxi"=="index.htm" (
                if not "%%~nxi"=="gjz.mdb" del /q /a "%%i" 1>nul 2>nul
        )
   )
)
pause
发表于 2021-12-13 16:52:05 | 显示全部楼层
批处理不要放在目录里
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 15:14 , Processed in 0.021172 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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