admin管理员组

文章数量:1624796

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 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 

@echo on                                                        不使用

 

 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:

测试文件夹目录如下:

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

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

@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、实施

步骤:创建文件 --> 加入内容 --> 重命名为【.bat】

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

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

比如我的Temp文件夹在这:

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

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

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

本文标签: 批量内存文件方法Windows