windows下使用bat批量删除文件(用于内存清理)

2024-03-04 0 1,058
目录
  • 1、思路
    • 1.1 bat下的for循环格式:
    • 1.2 bat的删除
      • rd(删除目录)参数:
      • del(删除文件)参数:
  • 2、实施
    • 3、del命令入门
      • 实现方法一:使用del命令
        • 实现方法二:使用for循环
          • 实现方法三:使用PowerShell

          tips:可以直接点击目录中的【!!!错误*】查看你对应的报错情况

          1、思路

          遍历目标文件夹 → 删除文件

          1.1 bat下的for循环格式:

          !!!注意:

          这有一个大坑,使用参数“\\d”,“\\r”时的格式有差异,除非不写路径,就在当前目录下执行,两者差不多。

          for [参数] %%变量名 in (匹配符) do (执行的命令)
          \\d:
          for \\d %%变量名 in (路径\\匹配符) do (执行的命令)
          \\r:
          for \\r 路径 %%变量名 in (匹配符) do (执行的命令)

          参数:

          • 无参:遍历当前文件夹下的文件
          • /d:遍历当前文件夹下的子文件夹
          • /r:深度遍历当前文件夹下的所有文件
          • /l:迭代数值范围,使用迭代变量设置起始值,然后逐步执行一组范围的值,直到该值超过所设置的终止值(这里不详解)
          • /f:用于解析文件内容(这里不详解)

          eg:

          # 写法1@echo offfor /r D:\\Desktop\\test %%i in (*.txt) do echo %%ipause# 写法2@echo offfor /r D:\\Desktop\\test %%i in (*) do ( echo %%i)pause# 写法1
          @echo off
          for /r D:\\Desktop\\test %%i in (*.txt) do echo %%i
          pause
          # 写法2
          @echo off
          for /r D:\\Desktop\\test %%i in (*) do (
          echo %%i
          )
          pause

          同时想遍历文件夹和文件这样写(最好把括号都加上)

          @echo off
          for /d %%i in (D:\\Desktop\\test\\*) do (echo %%i)
          for /r D:\\Desktop\\test %%i in (*) do (echo %%i)
          pause

          @echo off

          @echo off 相在批处理运行命令时不显示命令行信息@echo on 与不使用等效

          @echo off

          windows下使用bat批量删除文件(用于内存清理)

          @echo on 不使用

          windows下使用bat批量删除文件(用于内存清理)windows下使用bat批量删除文件(用于内存清理)

          pause

          “暂停”,不加的话cmd窗口就会一闪而过

          1.2 bat的删除

          bat下删除有两种:rd、del

          rd(删除目录)参数:

          /s:删除目录及目录下的所有子目录和文件/q:进行删除时不提醒。(慎用)

          del(删除文件)参数:

          /s:删除本目录下及子目录的文件/q:同上/f:删除只读文件。/a:删除指定属性或指定属性以外的文件。(对普通人意义不大)/AR、/AH、/AS、/AA表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。

          eg:

          测试文件夹目录如下:

          windows下使用bat批量删除文件(用于内存清理)

          共3层,每层都有测试文件

          windows下使用bat批量删除文件(用于内存清理)

          这样即可以保留原文件夹,又可以删除文件夹下的目录和文件。(实验成功!!!)

          @echo off
          for /d %%i in (D:\\Desktop\\test\\*) do (
          rd /s /q %%i
          )
          for /d %%i in (D:\\Desktop\\test\\) do (
          del /s /q %%i
          )
          pause

          2、实施

          我用来清理电脑的临时文件夹(C盘炸了,当然我把有些临时文件夹移动到了其他盘)

          后面的事情就简单多了,把上面的路径改为你想清理的路径

          比如我的Temp文件夹在这:

          @echo off
          for /d %%i in (D:\\Desktop\\test\\*) do (
          rd /s /q %%i
          )
          for /d %%i in (D:\\Desktop\\test\\) do (
          del /s /q %%i
          )
          pause

          windows下使用bat批量删除文件(用于内存清理)

          双击bat文件之后,清理成功(有些正在运行的和需要权限的暂时无法删除,不过不影响,清理内存够了),可以把“pause”去掉了。

          windows下使用bat批量删除文件(用于内存清理)

          命令删除的不会进入回收站,相当于直接shift+delete的永久删除,方便又快捷。QwQ

          3、del命令入门

          实现方法一:使用del命令

          del /s /q <文件路径\\文件名>

          这个命令可以递归删除指定路径下的所有文件,其中/s参数表示递归删除,/q参数表示静默删除。

          实现方法二:使用for循环

          for /r <目标路径> %%f in (*) do (
              del /q \”%%f\”
          )

          这个方法使用for循环遍历指定路径下的所有文件(包括子文件夹),然后利用del命令删除文件。其中(*)表示匹配所有文件,/q参数表示静默删除。

          实现方法三:使用PowerShell

          Get-ChildItem <目标路径> -Recurse | Remove-Item -Force

          这个方法利用PowerShell的命令,Get-ChildItem获取指定路径下的文件和文件夹,-Recurse参数表示递归获取所有子文件夹及其文件,然后使用Remove-Item命令删除文件,-Force参数表示强制删除。

          您可能感兴趣的文章:

          • 批处理程序删除自身 bat批处理
          • bat批处理彻底删除0KB顽固文件或文件夹的方法
          • 批处理bat删除指定天数日期之前的文件夹
          • 批处理bat删除指定天数日期之前的文件
          • Windows下使用批处理文件.bat删除旧文件
          • bat实现删除文本中的空行、空格、制表符、最后一行空行

          收藏 (0) 打赏

          感谢您的支持,我会继续努力的!

          打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
          点赞 (0)

          悠久资源 DOS/BAT windows下使用bat批量删除文件(用于内存清理) https://www.u-9.cn/jiaoben/dosbat/183105.html

          常见问题

          相关文章

          发表评论
          暂无评论
          官方客服团队

          为您解决烦忧 - 24小时在线 专业服务