Board logo

标题: [文件操作] 批处理如何删除指定文件夹内除指定文件之外的所有文件 [打印本页]

作者: kongzhezhi    时间: 2016-9-14 09:12     标题: 批处理如何删除指定文件夹内除指定文件之外的所有文件

批处理删除,但是保留特定内容
主要用在服务器维护方面 !
vps上很多网站被人挂马了!
大量的无用内容!
经过总结  ,只能 保留核心特定的内容!

大概思路是这样的!

在一个文件夹内 无数个乱七八糟的文件 ,  现在要求只保留 index.html    和 index.htm 和gjz.mdb  其他统统删除!
作者: dreamer    时间: 2016-9-14 09:44

本帖最后由 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"
作者: kongzhezhi    时间: 2016-9-14 14:16

回复 2# dreamer


        不行啊  ,运行了  被全部清空了 包括需要的,   把好的文件都删了 !!!!
作者: kongzhezhi    时间: 2016-9-14 15:32

有人帮我看一下吗?
作者: flyinnet9    时间: 2016-9-14 16:05

for /r "指定的路徑" %%i in (*) Do If Not Defined "%%~nxi" Del /q "%%i"
改成:
for /r "指定的路徑" %%i in (*) Do If Not Defined %%~nxi Del /q "%%i"
作者: kongzhezhi    时间: 2016-9-14 16:10

回复 5# flyinnet9


    谢谢 这次好像是对的! 刚刚那个仁兄害惨我了  ,误删了好多 而且是不进回收站的!  哭晕在厕所!
作者: dreamer    时间: 2016-9-14 18:58

回复 6# kongzhezhi


    噁,抱歉.........
作者: WHY    时间: 2016-9-14 19:22

重要数据先备份,运行代码先测试,这是起码的常识。不能把责任全推给别人的。
作者: kongzhezhi    时间: 2016-9-14 19:23

回复 8# WHY


    小范围受灾  ,  谢谢提醒 ,下次一定注意
作者: WHY    时间: 2016-9-14 19:24

PowerShell 可以这样:
  1. dir -Path 'D:\Test' -Include *.* -Exclude @('index.htm*', 'gjz.mdb') -Recurse | del
复制代码

作者: Batcher    时间: 2016-9-14 23:37

  1. @echo off
  2. powershell -c "Get-ChildItem -Path D:\Test -Exclude index.htm*, gjz.mdb -Recurse | Remove-Item"
复制代码

作者: Batcher    时间: 2021-12-11 23:26

【问题描述】

怎么用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
复制代码

作者: Fit    时间: 2021-12-13 16:51

@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
作者: Fit    时间: 2021-12-13 16:52

批处理不要放在目录里




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