[Windows][代码]Windows使用bat文件删除文件

时间:2025-02-09 07:51:54

 

在Windows操作系统中通过命令提示符(cmd)删除文件和文件夹的批处理脚本。

定义基础路径

set basePath=D:\soft\

        这行代码设置了基础路径变量basePath,其值为D:\soft\

删除指定文件夹内的所有文件

del "%basePath%\server\temp\*.*" /f/s/q/a

        这行代码使用del命令删除basePath路径下server\temp文件夹中的所有文件。其中:

  • /f 表示强制删除只读文件。
  • /s 表示删除指定目录及其子目录中的文件。
  • /q 表示安静模式,不要求确认删除。
  • /a 是一个错误的选项,del命令没有这个选项。如果您想删除所有属性的文件,应该使用/a选项,但请注意,del命令不支持/a选项,这是attrib命令的选项。

使用forfiles命令删除特定类型的文件

        删除没有文件名的文件(这可能是一个错误,因为没有文件名的文件实际上不存在):

forfiles /p "D:\emil" /s /m * /d -30 /c "cmd /c del @path /f/s/q/a"

        删除所有文件名的文件(这个命令同样有误,因为*已经匹配所有文件):

forfiles /p "D:\emil" /s /m *.* /d -30 /c "cmd /c del @path /f/s/q/a"

        删除所有.log文件:

forfiles /p "D:\emil" /s /m *.log /d -30 /c "cmd /c del @path /f/s/q/a"

forfiles命令用于选择符合特定条件的文件并执行命令。其中:

  • /p 指定起始目录。
  • /s 在所有子目录中搜索。
  • /m 指定搜索模式,* 匹配所有文件,*.log 匹配所有扩展名为.log的文件。
  • /d -30 表示选择30天前的文件。
  • /c 后面跟着要执行的命令。

删除指定文件夹及其子文件夹中的所有文件的命令

del "D:\emil\*.*" /f /s /q

        注意:在执行删除操作之前,请确保您完全理解这些命令的作用,并且已经备份了所有重要数据。错误的使用这些命令可能会导致重要文件的永久丢失。此外,如果basePathD:\emil路径不存在或有误,脚本将不会按预期工作。

全部代码如下:


rem 定义文件夹删除
set basePath=D:\soft\
del "%basePath%\server\temp\*.*" /f/s/q/a

rem 指定目录删除不同类型
rem 删除没有文件名的文件
forfiles /p "D:\emil" /s /m * /d -30 /c  "cmd /c del @path /f/s/q/a"
rem 删除所有文件名文件
forfiles /p "D:\emil" /s /m *.* /d -30 /c  "cmd /c del @path /f/s/q/a"
rem 删除log文件
forfiles /p "D:\emil" /s /m *.log /d -30 /c  "cmd /c del @path /f/s/q/a"

rem 删除指定文件夹下全部文件
del "D:\emil\*.*" /f /s /q