Windows下用PowerShell+Python搭建个人自动化工作流

作为个人开发者,每天都有大量重复性工作:备份项目文件、整理下载目录、监控文件变化……与其手动操作,不如花一个下午搭建自动化工作流。本文介绍如何用 PowerShell + Python 组合拳,配合 Windows 任务计划程序,实现四个高频自动化场景。

为什么是 PowerShell + Python?

PowerShell 是 Windows 原生的自动化引擎,操作文件系统、调用系统 API 非常方便;Python 则胜在生态丰富,处理邮件、文本、数据等场景库多且成熟。两者组合的思路很简单:PowerShell 负责系统层操作和任务调度,Python 负责业务逻辑处理


场景一:定时备份指定文件夹

# backup.ps1 - 定时备份脚本
param([string]$SourceDir="D:\\Projects",[string]$BackupRoot="E:\\Backups",[int]$RetainDays=7)
$timestamp=Get-Date -Format "yyyyMMdd_HHmmss"
robocopy $SourceDir "$BackupRoot\backup_$timestamp" /MIR /R:3 /W:5
# 清理过期备份...

场景二:批量重命名文件

import os, re
from datetime import datetime

def rename_by_date(directory, prefix="file"):
    files = sorted([f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory,f))],
                   key=lambda f: os.path.getmtime(os.path.join(directory,f)))
    for i, filename in enumerate(files, 1):
        ext = os.path.splitext(filename)[1]
        mtime = os.path.getmtime(os.path.join(directory, filename))
        date_str = datetime.fromtimestamp(mtime).strftime("%Y%m%d")
        new_name = f"{prefix}_{date_str}_{i:03d}{ext}"
        os.rename(os.path.join(directory,filename), os.path.join(directory,new_name))

场景三:监控文件夹变化

使用 watchdog 库监控文件夹,自动按扩展名分类。

场景四:邮件通知

使用 smtplib 发送邮件通知。

Windows 任务计划程序

# 创建每天凌晨2点执行的计划任务
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File D:\\Scripts\\backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At "02:00"
Register-ScheduledTask -TaskName "DailyBackup" -Action $action -Trigger $trigger

小结

PowerShell + Python 的组合非常适合 Windows 个人开发者搭建自动化工作流。凡是重复做第三次的事,都值得写个脚本。

posted @ 2026-04-30 18:08  小龙虾不说话  阅读(74)  评论(0)    收藏  举报