AutoHotkey:定时删除目录下指定分钟以前的文件,带UI界面
删除指定目录下,所有在某个指定分钟以前的文件,可以用来清理经常生成很多文件的目录,但又需要保留最新的一部分文件
支持拖放目录到界面
能够记忆设置,下次启动后不用重新设置,可以直接开始
应用场景比如:游戏定时存档,日志目录、监控文件目录等

关于这个删除后备份,我的需求是这样,如果你要的是删除前备份,可以把_del()函数里的_bak()调用放到最前面
不多废话,直接上代码
SetWorkingDir %A_ScriptDir%SplitPath, A_ScriptName,,,,IniFile
IniFile = %IniFile%.iniGui New, -0x10000 -0x30000 ;无最小化和最大坏按钮
Gui Font, s9, Segoe UIGui Add, Text, x10 y15 w34 h20 +0x200, 目录:
Gui Add, Edit, vEdtFolder gOnEdtFolderChange x64 y14 w299 h21Gui Add, Text, x10 y51 w48 h23 +0x200, 分钟前:
Gui Add, Edit, vEdtMin gOnEdtMinChange x63 y51 w26 h21Gui Add, CheckBox, vChkBak gOnChkBakChange x10 y88 w85 h23, 删除后备份Gui Add, Text, x115 y50 w98 h23 +0x200, 检测间隔[分钟]:
Gui Add, Edit, vEdtInterval gOnEdtIntervalChange x216 y50 w26 h21Gui Add, Edit, vEdtZipFile gOnEdtZipFileChange x100 y88 w265 h21Gui Add, Button, gOnBtnStart x147 y130 w72 h23, 开始监视;读取INI赋值
IniRead, Folder, % IniFile, Base, Folder
if (Folder = "" || Folder == "ERROR")Folder = 拖放文件夹到这里
IniRead, Min, % IniFile, Base, Min
if (Min = "" || Min == "ERROR")Min = 30
IniRead, Interval, % IniFile, Base, Interval
if (Interval = "" || Interval == "ERROR")Interval = 5
IniRead, IsBackup, % IniFile, Base, IsBackup
if (IsBackup = "" || IsBackup == "ERROR")IsBackup = 0
IniRead, ZipFile, % IniFile, Base, ZipFile
if (ZipFile = "" || ZipFile == "ERROR")ZipFile = 备份文件路径 [扩展名:.zip]
GuiControl,, EdtFolder, % Folder
GuiControl,, EdtMin, % Min
GuiControl,, EdtInterval, % Interval
GuiControl,, ChkBak, % IsBackup
GuiControl,, EdtZipFile, % ZipFileGui Show, w371 h169, 删除目录下指定分钟以前的文件
ReturnOnEdtFolderChange:
global Folder
GuiControlGet, Folder, , EdtFolder
;MsgBox % Folder
IniWrite % Folder, % IniFile, Base, Folder
ReturnOnEdtMinChange:
global Min
GuiControlGet, Min, , EdtMin
IniWrite % Min, % IniFile, Base, Min
ReturnOnEdtIntervalChange:
global Interval
GuiControlGet, Interval, , EdtInterval
IniWrite % Interval, % IniFile, Base, Interval
ReturnOnChkBakChange:
global IsBackup
GuiControlGet, IsBackup, , ChkBak
IniWrite % IsBackup, % IniFile, Base, IsBackup
ReturnOnEdtZipFileChange:
global ZipFile
GuiControlGet, ZipFile, , EdtZipFile
IniWrite % ZipFile, % IniFile, Base, ZipFile
ReturnGuiDropFiles:
Loop, Parse, A_GuiEvent, `n
{global IniFileFirstFile = %A_LoopField%FileGetAttrib, Attributes, % FirstFileIfInString, Attributes, D ;是目录;MsgBox This is a directory.GuiControl,, EdtFolder, % FirstFile ;自动调用onChangebreak
}
ReturnOnBtnStart:
global Folder
if !FileExist(Folder)
{MsgBox 目录不存在!return
}Gui, Hideglobal Interval
_del()
SetTimer _del, % Interval * 60 * 1000
ReturnGuiEscape:
GuiClose:ExitApp_del(){global Folder ;必须引用global MinLoop %Folder%\*{;计算文件的最后修改时间距离当前时间的分钟数TimeNow := A_NowEnvSub TimeNow, A_LoopFileTimeModified, Minutes;如果文件的最后修改时间超过了指定的分钟数,就删除该文件if (TimeNow > Min){;MsgBox %A_LoopFileFullPath%;尽可能删除到回收站,否则使用FileDeleteFileRecycle %A_LoopFileFullPath%}}_bak()
}_bak()
{global Folderglobal ZipFileIfExist %ZipFile%FileRecycle %ZipFile%;双引号路径可以处理空格Run 7z.exe a -tzip -r "%ZipFile%" "%Folder%",,Hide
}
相关文章:
AutoHotkey:定时删除目录下指定分钟以前的文件,带UI界面
删除指定目录下,所有在某个指定分钟以前的文件,可以用来清理经常生成很多文件的目录,但又需要保留最新的一部分文件 支持拖放目录到界面 能够记忆设置,下次启动后不用重新设置,可以直接开始 应用场景比如:…...
一文学会sklearn中的交叉验证的方法
前言 在机器学习中,我们经常需要评估模型的性能。而为了准确评估模型的性能,我们需要使用一种有效的评估方法。五折交叉验证(5-fold cross-validation)就是其中一种常用的模型评估方法,用于评估机器学习模型的性能和泛…...
【MySQL面试题(66道)】
文章目录 MySQL面试题(66道)基础1.什么是内连接、外连接、交叉连接、笛卡尔积呢?2.那 MySQL 的内连接、左连接、右连接有有什么区别?3.说一下数据库的三大范式?4.varchar 与 char 的区别?5.blob 和 text 有什么区别?6.…...
CSSCI、北核期刊投稿指南(2023年更新)
该数据为经管类的期刊投稿指南,包含发表难度,文章数量,影响因子,用户评价等指标。共5份文件,分别为国内所有期刊信息库、投稿指南(CSSCI版本、CSSCI扩展版本、北大核刊版本、建议期刊版本) 一、…...
构建 NodeJS 影院微服务并使用 docker 部署它(02/4)
一、说明 构建一个微服务的电影网站,需要Docker、NodeJS、MongoDB,这样的案例您见过吗?如果对此有兴趣,您就继续往下看吧。 图片取自网络 — 封面由我制作 这是✌️“构建 NodeJS 影院微服务”系列的第二篇文章。 二、对第一部分的…...
HTML <style> 标签
实例 <html> <head> <style type="text/css"> h1 {color:red} p {color:blue} </style> </head><body> <h1>Header 1</h1> <p>A paragraph.</p> </body> </html>定义和用法 <style>…...
设计模式——迪米特法则
文章目录 基本介绍应用实例应用实例改进迪米特法则注意事项和细节 基本介绍 一个对象应该对其他对象保持最少的了解类与类关系越密切,耦合度越大迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说&#x…...
区块链基本概念与当前生态简介
区块链是一种去中心化的分布式账本技术,它通过将数据按照时间顺序链接成区块,并使用密码学算法确保数据的安全性和完整性。每个区块包含一定数量的交易记录,而且每个区块都包含了前一个区块的哈希值,这样形成了一个不可篡改的链式…...
mac安装lrzsz出错Command failed with exit 128: git
终端检查电脑是否安装了rz和sz which sz若报错,则需要下载。由于网络和代理的原因,以下命令会报错: brew install lrzsz是因为brew和git配置的代理存在冲突,对于无外网链接功能,无特殊配置的git而言,需要…...
“深入探索JVM内部机制:揭秘Java虚拟机“
标题:深入探索JVM内部机制:揭秘Java虚拟机 摘要:本文将深入探索Java虚拟机(JVM)的内部机制,从内存管理、垃圾回收、即时编译等方面进行详细剖析。通过了解JVM的工作原理,我们可以更好地理解Jav…...
lvs-DR
lvs-DR数据包流向分析 client向目标VIP发出请求。 DIR根据负载均衡算法一台active的RS(RIR1),将RIP1所在的网卡的mac地址作为目标的mac地址,发送到局域网里。 RIRI在局域网中的收到这个帧,拆开后发现目标(…...
Vue 项目运行 npm install 时,卡在 sill idealTree buildDeps 没有反应
解决方法:切换到淘宝镜像。 以下是之前安装的 xmzs 包,用于控制切换淘宝镜像。 该截图是之前其他项目切换淘宝镜像的截图。 切换镜像后,顺利执行 npm install 。...
ShardingSphere介绍
ShardingSphere从4.X到5.X的内容发生了很多的改变,感兴趣的伙伴可以到ShardingSphere的博客查看各个版本的新特性。https://blog.csdn.net/ShardingSphere?typeblog 此次使用最新版本 shardingShpere5.4.0,实现数据库读写分离、数据分片、分布式事务等…...
【SA8295P 源码分析】44 - 如何替换 NON-HLOS.bin 中的 Wifi Firmware 固件
【SA8295P 源码分析】44 - 如何替换 NON-HLOS.bin 中的 Wifi Firmware 固件 1、提取 NON-HLOS.bin 中的 Wifi Firmware 出来2、把提取出来的 wifi 固件放到代码中3、重新打包生成 NON-HLOS.bin4、将生成的 NON-HLOS.bin 与 老的 NON-HLOS.bin 对比5、使用fastboot 下载测试wifi…...
市面上那里有稳定L2股票行情数据接口?
随着市场的发展和技术的进步,level2股票行情数据接口已经成为股票交易软件的标准配置之一。虽然这些券商软件的功能在很大程度上相似,但它们仍然有自己的特点和优势。 例如:通过股票交易所以其专业的研究报告和丰富的信息服务而受到广泛关注&…...
个人信息保护影响评估(PIA)怎么做?解发条件、实施步骤、操作指南
个人信息保护一直是人们关注的热点话题,互联网、人工智能、大数据等新兴技术的快速发展极大地增强了入侵个人信息的能力,对个人信息的随意收集、违法获取、过度使用、非法买卖、泄露等问题引起了全球各国的普遍关注。同时随着用户的个人信息保护意识的逐…...
HTML <sub> 标签
例子 这段文本包含 <sub>下标</sub> 定义和用法 <sub> 标签可定义下标文本。 包含在 <sub> 标签和其结束标签 </sub> 中的内容将会以当前文本流中字符高度的一半来显示,但是与当前文本流中文字的字体和字号都是一样的。 提示&am…...
C# 设置、获取程序,产品版本号
右键,程序属性。打开“程序集信息” 选择需要设置的版本信息。下面的代码,获取不同的设置内容。 string 其他 Assembly.GetExecutingAssembly().FullName; string 程序集版本 Assembly.GetExecutingAssembly().G…...
LeetCode 面试题 01.04. 回文排列
文章目录 一、题目二、C# 题解 一、题目 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。 回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。 回文串不一定是字典当中的单词。 点击此处跳转题目。 示例1: 输入&…...
CentOS 7 安装MySQL8.0.33
一、查看 CentOS 版本 要查看当前 CentOS 版本,你可以执行以下命令: cat /etc/centos-release 该命令将显示当前 CentOS 的版本信息,例如: CentOS Linux release 7.9.2009 (Core) 在这个示例中,CentOS 版本为 7.…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
