分享:python+Windows自带任务计划程序,实现定时自动删微信的video文件夹

article/2025/10/1 18:07:00

目录

  • 0. 背景
  • 1. 使用python实现删微信的video文件夹
    • 1.1 代码
    • 1.2 打包
  • 2. 使用python实现自动添加任务计划程序
    • 2.1 代码
    • 2.2 打包
  • 3. 使用bat脚本方便操作
    • 3.1 手动删.bat
    • 3.2 加入定时任务.bat

0. 背景

pc微信实在太占用磁盘空间了,特别是其中的视频文件夹。所以有了这些实现,每个月的最后一天的晚上的11点,自动删了微信的视频文件夹,从此不再面对红色磁盘的焦虑!
PS:本文章里的代码,98%是chatGPT生成的,我的作用是提问,总结和debug。。。。

1. 使用python实现删微信的video文件夹

1.1 代码

新建个python文件,命名为:delWechatFolder.py

import os
import shutil
import winregimport clickCONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])@click.group(context_settings=CONTEXT_SETTINGS)
@click.version_option(version='1.0.0')
def myClick():"""这是一个用于删除指定微信id的video文件夹的小工具。"""passdef getCurrentUserDocumentPath():'''通过注册表获取当前用户的document路径'''retPath = ""try:hKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders")retPath = winreg.QueryValueEx(hKey, "Personal")[0]winreg.CloseKey(hKey)print(retPath)except WindowsError as e:print("Error:", e)return retPathdef getWeChatFileSavePath():'''通过注册表获取微信文件保存路径'''retPath = Nonetry:hKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Tencent\\WeChat")retPath = winreg.QueryValueEx(hKey, "FileSavePath")[0]winreg.CloseKey(hKey)except WindowsError as e:print("Error:", e)if not retPath:retPath = getCurrentUserDocumentPath() + "\\WeChat Files"return retPath@myClick.command()
@click.option('--wxid', default='scoful', prompt='要操作的微信id', help='要操作的微信id')
def delFolder(wxid):"""删除指定wxid的video文件夹"""wechatFileSavePath = getWeChatFileSavePath()print(wechatFileSavePath)# 定义要删除的文件夹路径folder_path = wechatFileSavePath + "\\" + wxid + "\\FileStorage\\Video"# 判断文件夹是否存在if os.path.exists(folder_path):# 如果文件夹存在,就进入下一级目录os.chdir(folder_path)# 获取当前目录下的所有文件夹和文件file_list = os.listdir()# 遍历所有文件夹和文件for file_name in file_list:print(file_name)# 判断是否是文件夹if os.path.isdir(file_name):# 如果是文件夹,就使用 shutil.rmtree 函数删除该文件夹及其所有内容shutil.rmtree(file_name)print(f"文件夹 {file_name} 已删除")else:print("文件夹不存在")if __name__ == '__main__':myClick()

1.2 打包

  • 为了方便使用和可以分享给他人使用,建议打包成可执行文件
  • 参考《科普:python怎么使用Pyinstaller模块打包成可执行文件》
  • 可选项,找个favicon.ico,可以通过这个网站自定义生成
  • 打包命令:Pyinstaller -F -c -i favicon.ico delWechatFolder.py
  • 切记在conda的虚拟环境里打包哦
  • 在代码目录下,会生成一个dist文件夹,里面就有生成的可执行文件,并且使用了提供的favicon.ico文件,delWechatFolder.exe

2. 使用python实现自动添加任务计划程序

任务计划程序的官方接口文档

2.1 代码

新建个python文件,命名为:registerMonthlyTask.py

import datetime
import osimport click
import win32com.clientCONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])@click.group(context_settings=CONTEXT_SETTINGS)
@click.version_option(version='1.0.0')
def myClick():"""这是一个新建定时任务的小工具。每个月的最后一天删除指定微信id的video文件夹"""pass@myClick.command()
@click.option('--wxid', default='scoful', prompt='要操作的微信id', help='要操作的微信id')
def handleScheduler(wxid):# 创建任务计划程序对象scheduler = win32com.client.Dispatch("Schedule.Service")scheduler.Connect()# 获取任务计划程序的根文件夹root_folder = scheduler.GetFolder("\\")# 创建一个新任务task = scheduler.NewTask(0)# 设置任务的基本属性task.RegistrationInfo.Description = "每个月的最后一天删除指定微信id的video文件夹"task.Settings.Enabled = Truetask.Settings.Hidden = False# 创建每月最后一天晚上11点触发器trigger = task.Triggers.Create(4)  # 4 表示 MonthlyTriggertrigger.MonthsOfYear = 4095  # 4095 表示所有月份trigger.RunOnLastDayOfMonth = True  # True 表示每月最后一天trigger.StartBoundary = datetime.datetime.now().strftime('%Y-%m-%dT23:00:00')  # 每月最后一天晚上11点trigger.Id = 'delWechatFolder trigger'# 添加操作,用于调用.exe文件并传递额外参数action = task.Actions.Create(0)  # 0 表示 ExecActioncurrent_directory = os.getcwd()print(current_directory)action.Path = current_directory + "\\delWechatFolder.exe"action.Arguments = "delfolder --wxid=" + wxid# 将任务添加到任务计划程序的根文件夹中root_folder.RegisterTaskDefinition("delWechatFolder Task",task,6,  # 6 表示创建或更新任务"", "",  # 用户名和密码为空字符串,表示当前用户0)  # 0 表示不需要SDDL格式的安全描述符print("Task created successfully.")if __name__ == '__main__':myClick()

2.2 打包

  • 为了方便使用和可以分享给他人使用,建议打包成可执行文件
  • 参考《科普:python怎么使用Pyinstaller模块打包成可执行文件》
  • 可选项,找个favicon2.ico,可以通过这个网站自定义生成
  • 打包命令:Pyinstaller -F -c -i favicon2.ico registerMonthlyTask.py
  • 切记在conda的虚拟环境里打包哦
  • 在代码目录下,会生成一个dist文件夹,里面就有生成的可执行文件,并且使用了提供的favicon.ico文件,registerMonthlyTask.exe

3. 使用bat脚本方便操作

3.1 手动删.bat

这个脚本是用来手动触发,并验证代码是否正确

@echo off
cd /d %cd%
start delWechatFolder.exe delfolder --wxid=你的微信id

3.2 加入定时任务.bat

这个脚本是用来加入任务计划程序

@echo off
cd /d %cd%
start registerMonthlyTask.exe handlescheduler --wxid=你的微信id
  • 双击运行后,可以去任务计划程序里查看是否加入,右键我的电脑-管理-任务计划程序库-任务计划程序库
    在这里插入图片描述
  • 可以看到已经新增成功
  • 右键该计划-运行,可以测试是否可以生效

enjoy!


http://chatgpt.dhexx.cn/article/vBPehCfd.shtml

相关文章

Windows下如何在任务计划程序中添加自动关机任务计划程序?

1. 首先打开并点击“计算机管理”→“系统工具”→“任务计划程序”。Windows 10 中在开始菜单鼠标右击 Windows 徽标键,弹出快捷菜单,点击“计算机管理”程序。如下图所示: 2. 在任务计划程序中,创建新的文件夹。 3. 点击右侧操作…

计算机管理任务计划程序全部禁用,Win10系统设置任务计划程序出现“任务计划程序不可用”如何解决...

在win10纯净版系统中,自带有任务计划程序功能,可以让用户们计划启动程序,但是有些用户在设置任务计划程序的时候,出现了“任务计划程序不可用”的提示,该怎么办呢,接下来给大家分享一下Win10系统设置任务计…

windows任务计划程序运行结果(0x1)

网上查了结果,说调用的函数不正确,或调用了未知函数 我这个任务是调用了备份的bat,bat正确,排除此说法。 我接着把这个任务手动点启动,也 没反应,接着重新属性修改了一下,让我再次输入windows管…

自动化脚本任务计划程序(Windows)

任务计划程序(Windows) 我们使用对CSV 文件、Excel 文件和数据库中的数据进行处理。 命令行中的脚本都是通过手动运行的,就像这样: python python_script.py input_file.txt output_file.csv这是一种最常见的运行脚本的方法&…

任务计划程序使用方法

写了个很小的exe,然后想设置成每天启动运行的,就顺手搞了篇文章。 先winr 输入compmgmt.msc像这样 点 任务计划程序里的任务计划程序库像这样 然后点击右边的创建任务 名称就随便写写,其他的基本不用改,直接下一项 到触发器哪…

Windows任务计划程序Task Scheduler笔记

微软文档居然搜不到了 Windows任务计划程序已经存在许多年了,原来在微软的TechNet上有详细的操作介绍的,现在发现网站改版,原来的介绍居然搜索不到了,微软的平台上出现这种事情,也是比较吃惊了。 添加任务计划不难 …

设定任务计划程序

目录 计算机设定任务计划程序步骤如下 1. 点击Windows图标 > 搜索任务计划程序 > 打开 2. 点击任务计划程序库 > 在右边空白部分右击 > 新建任务 3. 常规 > 填写相关信息 4. 触发器 > 新建 > 填写相关设定 > 确定 5. 操作 > 新建 > 浏览 &…

Windows 任务计划程序(task scheduler)介绍

一、入口 任务计划程序在windows绝大多数版本都是系统自带,可以通过一下入口找到 1、开始——(windows)管理工具 2、服务器管理器——工具(server版) 3、我的电脑(此电脑)——点击我的电脑&…

前端Vue 项目性能优化

前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM;但 Vue 项目中仍然存在项目首屏优化、Webpack 编译配置优化等问题,所…

7 Web前端性能优化

一般说来Web前端指网站业务逻辑之前的部分,包括浏览器加载、网站视图模型、图片服务、CDN服务等,主要优化手段有优化浏览器访问、使用反向代理、CDN等。 1 浏览器访问优化 减少http请求 HTTP协议是无状态的应用层协议,意味着每次HTTP请求都…

前端性能优化的方向

目前大概整理为三个大方向:底层代码层面的书写优化、中层项目结构的优化,上层项目部署的优化 目录 1.代码压缩2.代码优化3.服务器渲染4.[SEO](https://so.csdn.net/so/search?qSEO%E4%BC%98%E5%8C%96&spm1001.2101.3001.7020)优化5.静态资源使用[C…

web前端性能优化总结

转自:http://www.2cto.com/kf/201604/498725.html 网站的划分一般为二:前端和后台。我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等。而前端呢?其实应该是属于功…

前端性能优化学习 02 Web 性能指标

Web 性能指标 我们已经知道性能的重要性,但当我们讨论性能的时候,让一个网页变得更快,具体指哪些内容? 事实上性能是相对的: 对于一个用户而言,一个站点可能速度很快(在具有功能强大的设备的…

web前端优化--图片优化

今天逛掘金浏览到一片有关web前端优化之图片优化的文章,很详细,比我这里总结的都全,大家可移步浏览: https://juejin.im/post/59a7725b6fb9a02497170459 文章中除了自己之前用到的,还有img的srcset和sizes的方法没用…

Web/前端性能优化

🖊 人不光是靠他生来就拥有一切,而是靠他从学习中所得到的一切来造就自己。 —— 歌德 什么是Web性能 一个大型网站架构模型如下图所示,对一个网站的性能进行优化,可以分为 Web 前端性能优化、应用服务器端性能优化、存储服务器端…

Web前端性能优化思路

本文旨在整理常见Web前端性能优化的思路,可供前端开发参考。因为力求精简,限于篇幅,所以并未详述具体实施方案。 基于现代Web前端框架的应用,其原理是通过浏览器向服务器发送网络请求,获取必要的index.html和打包好的…

多传感器融合定位技术

由于 GNSS定位信息更新频率低,不能满足自动驾驶中实时性的要求,且定位信号会 因隧道、建筑群等障碍物的遮挡而中断。而INS中配备高频传感器,一定时间内可以提供连续的较高精度的汽车位置、速度和航向信息,但其定位误差会随着系统运…

室内定位技术及机场方案建议

室内定位技术发展现状 在1996年左右,美国联邦通信委员会(FCC)要求移动运营商为移动电话用户提供E-911(紧急救援)服务。1999年,FCC又对定位精度做出新的要求。加之此后全球移动用户的迅猛发展,很…

RTK定位技术原理

RTK即载波相位差分技术,rtk定位能够实时地提供测站点在指定坐标系中的三维定位结果,并达到厘米级精度。 普通GPS的定位精度大于1米,信号误差有50%的概率会达到2米以上。另外,GPS无法支持精准定高,误差可能高达十几米。…

5G+北斗融合定位技术介绍

5G是具有高速率、低时延和大连接特点的新一代宽带移动通信技术。5G移动通信技术会更加注重用户的使用体验,交互式游戏、3D技术、虛拟实现、传输延时、网络的平均吞吐速度以及各方面能效是检验5G性能的主要考量指标。 基于4G的蜂窝定位,受信号带宽、同步以及网络部署…