定时删除指定文件夹及子文件夹 确保硬盘不会被占满 bat脚本

如果你想要一个批处理脚本,该脚本可以在定时删除指定文件夹及其子文件夹的同时确保硬盘不会被占满,你可以使用以下脚本:


@echo off
set "target_folder=C:\path\to\folder"
set "days_to_keep=7"
set "max_space_to_use=50" REM 最大使用50%的硬盘空间REM 获取目标文件夹的大小和硬盘总大小
for /d %%d in ("%target_folder%*") do (for /f "tokens=1,2 delims=:" %%a in ('dir /s "%%d" ^| findstr /r /c:"Size: "') do (set "folder_size=%%b")for /f "tokens=1,2 delims=:" %%a in ('wmic logicaldisk where drivetype=3 ^| findstr /r /c:"Size^: "') do (set "total_space=%%b")
)REM 计算需要删除的文件大小和文件数量,以确保硬盘不会超过最大使用空间
set "files_to_delete=0"
set "space_to_use=0"
for /d %%d in ("%target_folder%*") do (for /r "%%d" %%f in (*) do (if /i "%%~nxf" lss "today - %days_to_keep% days" (set /a "files_to_delete+=1"for /f "tokens=1,2 delims=:" %%a in ('dir /s "%%f" ^| findstr /r /c:"Size: "') do (set "file_size=%%b")set /a "space_to_use+=file_size"))
)REM 计算需要删除的文件数量和大小,以保持指定硬盘空间和防止硬盘被占满
set "files_to_keep=0"
set "space_to_use_bytes=%max_space_to_use% * 1024 * 1024" REM 转换为字节,这里我们假设最大使用50%的硬盘空间
:loop
if %space_to_use% gtr %space_to_use_bytes% (set /a "files_to_keep+=1"set /a "space_to_use-=space_to_use/files_to_keep" REM 减去相应的大小if %space_to_use% lss %space_to_use_bytes% ( REM 如果剩余空间小于允许的最大使用空间,跳出循环goto endscript) else (goto loop)
) else (goto endscript
)
:endscriptecho 删除目标文件夹及其子文件夹中的早于 %days_to_keep% 天的文件...
for /d %%d in ("%target_folder%*") do (for /r "%%d" %%f in (*) do (if /i "%%~nxf" lss "today - %days_to_keep% days" del "%%f" /q /f)
)
echo 删除完成。共删除了 %files_to_delete% 个文件,保留了足够的硬盘空间。按任意键退出...
pause >nul

这个脚本首先获取目标文件夹的大小和硬盘的总大小。然后,它计算需要删除的文件大小和文件数量,以确保硬盘不会超过最大使用空间。接下来,它循环地删除文件,直到剩余空间等于或小于最大使用空间为止。最后,它删除早于指定天数的文件,并显示已删除的文件数量和保留的硬盘空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】整理

对于现代大型系统而言,缓存是一个绕不开的技术话题,一提到缓存我们很容易想到Redis。 Redis整理,供回顾参考

解释 Python 中的描述符(Descriptor)是什么?如何在 Python 中实现一个简单的 ORM(对象关系映射)?

解释 Python 中的描述符(Descriptor)是什么?举例说明其用法。 在 Python 中,描述符(Descriptor)是一种对象属性的扩展机制,它允许你在访问或修改属性时执行自定义的操作。描述符是实现了特定协…

单片机学习笔记---定时器/计数器(简述版!)

目录 定时器的介绍 定时计数器的定时原理 定时计数器的内部结构 两种控制寄存器 (1)工作方式寄存器TMOD (2)控制寄存器TCON 定时计数器的工作方式 方式0 方式1 方式2 方式3 定时器的配置步骤 第一步,对…

MATLAB算法实战应用案例精讲-【人工智能】基于机器视觉的机器人及机械臂运动规划(最终篇)

目录 前言 几个高频面试题目 机械臂智能抓取涉及什么技术? 算法原理 智能抓取系统构成

《幻兽帕鲁》好玩吗?幻兽帕鲁能在Mac上运行吗?

最近一款叫做《幻兽帕鲁》的新游戏走红,成为了Steam游戏平台上,连续3周的销量冠军,有不少Mac电脑用户,利用Crossover成功玩上了《幻兽帕鲁》,其实Crossover已经支持很多3A游戏,包括《赛博朋克2077》《博德之…

Nicn的刷题日常之字符串左旋(详细图解思路,多解法,建议三连收藏)

目录 1.题目描述 一 2.解题想法图解 2.1直接解 2.2巧解 3.题目描述二 3.1.1思路1 3.1.2 思路2 4.结语 1.题目描述 一 实现现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 2.解题想法图解 2.…

【QT+QGIS跨平台编译】之二十四:【GeoTIFF+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、GeoTIFF介绍二、文件下载三、文件分析四、pro文件五、编译实践一、GeoTIFF介绍 GeoTIFF是一种常用的地理信息系统(GIS)文件格式,其采用标签结构将栅格地理空间数据以及相关的元数据存储在一个单一的文件中。它是基于标准的TIFF(Tagged Image File Format)格…

使用wda框架实现IOS自动化测试详解

目录 1、weditor元素定位工具 1.1、weditor的安装和使用 2、wda iOS自动化框架 2.1、wda概述 2.2、wda安装 2.3、wda的使用 2.3.1、全局配置 2.3.2、创建客户端 2.3.3、APP相关操作 1、启动APP 2、关闭APP 3、获取APP状态信息 4、获取当前APP的运行信息 2.3.4、设…

【leetcode题解C++】98.验证二叉搜索树 and 701.二叉搜索树中的插入操作

98. 验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例…

ubuntu22.04@laptop OpenCV安装

ubuntu22.04laptop OpenCV安装 1. 源由2. 验证环境3. OpenCV安装3.1 系统升级3.2 Python安装3.3 OpenCV C/C环境安装3.4 OpenCV Python虚拟环境安装3.5 OpenCV检查 4. 总结5. 参考资料6. 补充 - python环境 1. 源由 最近,打算在Companion Computer上一些目标识别的…

PyQtWebEngine模块,PyQt5用于处理网页渲染和浏览器功能

一、简介 PyQtWebEngine 是 PyQt5 框架的一个模块,用于在 PyQt5 应用程序中嵌入 Web 引擎功能。它基于 Qt WebEngine 技术,提供了与 Web 内容交互的功能,包括显示网页、执行 JavaScript、处理网络请求等。 以下是 PyQtWebEngine 的一些特点和…

MYSQL——MySQL8.3无法启动

在新电脑上装了个MySQL,但是无法使用net start mysql启动,很是纳闷,使用mysqld --console去查看报错,也是没报错的,但是奇怪的是,我输入完这个mysqld --console之后,就等于启动了mysql了&#x…

[python]基于opencv实现的车道线检测

【检测原理】 一、首先进行canny边缘检测,为获取车道线边缘做准备 二、进行ROI提取获取确切的车道线边缘(红色线内部) 三、利用概率霍夫变换获取直线,并将斜率正数和复数的线段给分割开来 四、离群值过滤,剔除斜率…

大数据平台-可视化面板介绍-Echarts

应对现在数据可视化的趋势,越来越多企业需要在很多场景(营销数据,生产数据,用户数据)下使用,可视化图表来展示体现数据,让数据更加直观,数据特点更加突出。 目录 01-使用技术 02- 案例适配方案 03-基础…

【大厂AI课学习笔记】1.4 算法的进步(4)关于李飞飞团队的ImageNet

第一个图像数据库是ImageNet,由斯坦福大学的计算机科学家李飞飞推出。ImageNet是一个大型的可视化数据库,旨在推动计算机视觉领域的研究。这个数据库包含了数以百万计的手工标记的图像,涵盖了数千个不同的类别。 基于ImageNet数据库&#xf…

编译Faiss-gpu【InterMKL】C++ 按步骤操作 基本不会有问题的 python原理相同。

编译Faiss-gpu C++ 基本介绍 使用Faiss版本【1.7.4】 该项目依赖于BLAS 组件 OpenBLAS 和 IntelMKL BLAS 【官方支持】 IntelMKL 会比 OpenBLAS 快的多。 【来自官方结论】 本机环境 Cuda :11.1 Cuda-Driver: 515 InterMKL: 2021.2.0 Faiss :1.7.4 注意:faiss仅…

podman详解

Podman 是一个开源项目,用于开发、管理和运行容器和容器镜像。它与 Docker 非常相似,但有一些关键的不同之处。 Podman 的主要特点包括: 无守护进程:不同于 Docker,Podman 不需要运行一个永久的守护进程。这使得 Podm…

Android之命令行烧写OTA镜像(一百八十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

【Leetcode】1690. 石子游戏 VII

文章目录 题目思路代码结果 题目 题目链接 石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。 有 n 块石子排成一排。每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获得与该行中剩余石头值之 和 相…

Spark context stopped while waiting for backend

目录 报错信息 解决办法 解释 报错信息 Spark context stopped while waiting for backend 翻译过来就是 :Spark上下文在等待后端时停止 解决办法 通过在yarn-site.xml中添加如下配置项,并重启yarn,程序在 “–driver-memory 600m --e…