定时删除指定文件夹及子文件夹 bat脚本

流程

【金山文档】 定时删除windows 服务器文件夹
https://kdocs.cn/l/cuWU8gKwen8Q

创建定时任务脚本

schtasks.exe /create /sc daily /tn "My Task" /tr "C:\path\to\your\script.bat" /st 00:00

 

请确保将 "C:\path\to\your\script.bat" 替换为你要执行的脚本或命令的完整路径。这个脚本或命令将在每天0点执行。

这里的参数解释如下:

  • /create:创建一个新任务。
  • /sc daily:设置任务的执行计划为每天。
  • /tn "My Task":为任务指定一个名称,你可以将其替换为你想要的任何名称。
  • /tr "C:\path\to\your\script.bat":指定要执行的脚本或命令的路径。
  • /st 00:00:设置任务的开始时间为每天的0点。

删除文件夹脚本

以下是一个简单的批处理脚本,可以定时删除指定目录及其子目录下的文件:

@echo off
set "target_folder=C:\path\to\folder"
set "days_to_keep=7"

for /d %%d in ("%target_folder%*") do (
echo Deleting files in "%%d" older than %days_to_keep% days...
for /r "%%d" %%f in (*) do (
if /i "%%~nxf" lss "today - %days_to_keep% days" del "%%f" /q /f
)
rd /s /q "%%d"
)

请注意,此脚本将删除指定目录及其子目录下的所有文件和文件夹,而不仅仅是目标目录下的文件和文件夹。在运行此脚本之前,请确保您已备份重要数据,并谨慎操作。

在此脚本中,您需要将 target_folder 变量设置为要删除文件的目录的路径。days_to_keep 变量指定要保留文件的最大天数。在此示例中,我们保留最近7天的文件。

脚本首先遍历目标文件夹中的每个子文件夹,并使用 for /r 命令递归处理每个子文件夹中的文件。对于每个文件,它检查文件的名称是否小于当前日期减去指定天数(在此示例中为7天)。如果是,则使用 del 命令删除该文件。/q 参数表示静默删除,不会提示确认,/f 参数表示强制删除只读文件。

接下来,对于每个子文件夹,使用 rd /s /q 命令删除整个文件夹及其内容。/s 参数表示递归删除文件夹及其子文件夹,/q 参数表示静默删除,不会提示确认。

windows服务器上验证

删除之前文件目录结构如下 

手动执行脚本

删除之后文件目录结构如下 

没有12这个文件夹了

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的 Windows 自动剪切文件夹的批处理脚本(.bat 文件): ``` @echo off set source_folder=C:\Path\To\Source\Folder set destination_folder=C:\Path\To\Destination\Folder :LOOP if not exist "%source_folder%\" ( echo Source folder not found. Exiting... exit /b ) if not exist "%destination_folder%\" ( echo Destination folder not found. Exiting... exit /b ) xcopy /s /y /d "%source_folder%\*" "%destination_folder%\" >nul rd /s /q "%source_folder%" timeout /t 3600 >nul goto LOOP ``` 解释: 1. `@echo off` 表示不显示执行命令的提示信息。 2. `set source_folder=C:\Path\To\Source\Folder` 和 `set destination_folder=C:\Path\To\Destination\Folder` 分别设置源文件夹和目标文件夹的路径。 3. `if not exist "%source_folder%\"` 和 `if not exist "%destination_folder%\"` 用于检查源文件夹和目标文件夹是否存在,如果不存在则退出脚本。 4. `xcopy /s /y /d "%source_folder%\*" "%destination_folder%\" >nul` 用于将源文件夹中的所有文件和文件夹复制到目标文件夹中。`/s` 表示包括文件夹,`/y` 表示覆盖目标文件夹中已存在的文件,`/d` 表示只复制源文件夹中修改时间比目标文件夹中早的文件。`>nul` 表示将命令的输出重定向到空设备,即不显示复制的文件列表。 5. `rd /s /q "%source_folder%"` 用于删除文件夹及其所有文件夹和文件。`/s` 表示包括文件夹,`/q` 表示不询问即删除。 6. `timeout /t 3600 >nul` 用于等待一小时(3600 秒)。`>nul` 表示将命令的输出重定向到空设备,即不显示等待的时间。这一行的作用是等待一段时间后再次执行循环,以便实现定时自动剪切文件夹的效果。 7. `goto LOOP` 用于跳转到 :LOOP 标签,从而实现循环执行脚本的功能。 以上是一个简单的自动剪切文件夹脚本,你可以根据实际需求进行修改。注意,使用此脚本前请谨慎备份数据,以免误操作造成数据丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值