用简单脚本自动化 PC 重复任务:从一个小任务开始
一听到脚本,很多人就觉得那是程序员的事。其实最值得自动化的任务都很小:每周整理下载文件夹、给几十张照片改名、每天把工作目录拷一份到别处。每次只花几分钟,但加起来很磨人,而且一忙就容易忘。下面三个案例都不需要先学完整门编程课,只要看得懂每一行在做什么,就可以从最小的一个先试起来。

动手之前:先把三条安全规则读完
先备份,再动手。凡是会移动、改名、删除文件的脚本,第一次运行之前,先把相关文件夹完整拷一份到别处。
只运行自己看得懂的脚本。每一行命令都要能说出它在干什么,看不懂就先查清楚再运行,不要跳过。
不要直接运行网上不明来源的脚本。网上复制来的脚本可能藏着删除文件、改系统设置的操作,哪怕评论区很多人说好用,也不能直接照搬。本文不鼓励这种做法,也不提供绕过系统限制的内容。
另外要先说清楚:下面案例的命令用法已对照微软官方 PowerShell 文档核对,核实日期为 2026-11-08。任务计划程序在不同 Windows 版本里的界面细节,本文没有逐个版本实测,相关位置描述未核实,请以实际界面为准。
案例一:下载文件夹每周自动整理一次
小林的下载文件夹永远是乱的:安装包、截图、表格、压缩包混在一起,找一个上周下载的文件要翻半天。他的需求很具体:每周五下班前,把图片、文档、压缩包分别挪进对应的子文件夹,安装包单独放一边,正在下载的临时文件不要动。
脚本思路就是分类加移动。先按扩展名分三类:图片是常见的 jpg 与 png,文档是 pdf 与 docx,压缩包是 zip 与 rar。再用 Move-Item 把每一类挪到对应的子文件夹。先判断目标文件夹在不在,不在就先创建,这样第一次运行也不会报错。正在下载的文件通常以临时扩展名结尾,不在分类名单里,就会被留在原地。
第一次运行不要直接上自动任务。先新建一个测试小文件夹,放几张复制出来的图片和文档,把脚本路径改成它,跑一遍看结果。确认无误,再把路径改回真正的下载文件夹。自动执行交给 Windows 自带的任务计划程序,设每周五固定时间运行,运行前电脑要开机。任务计划程序是否支持锁屏时运行,本文未核实,设好后最好在下一个周五主动看一眼结果。
怎么确认它跑对了,看三处。第一是数量:整理前后数一下各类文件个数,挪走的数量要对得上。第二是位置:打开三个子文件夹,抽查几个文件能不能正常打开。第三是遗漏:原文件夹里应只剩安装包、临时文件和特意排除的东西,某类文件没被挪走,多半是扩展名不在名单里,补上再跑一次。
1$source = "$env:USERPROFILE\Downloads"
2$images = Join-Path $source "图片"
3if (-not (Test-Path $images)) { New-Item -ItemType Directory -Path $images | Out-Null }
4Get-ChildItem -Path $source -File -Filter *.jpg | Move-Item -Destination $images
5Get-ChildItem -Path $source -File -Filter *.png | Move-Item -Destination $images
上面这段只处理了图片,文档与压缩包照同样的写法各加两行即可。每一行的意思都很直白:先定好来源与目标,再找出符合条件的文件,把它们挪过去。先让图片这一类跑通,再补其他类别。
案例二:旅行照片批量重命名,再也不怕重名覆盖
阿杰出去玩一周拍了两百多张照片,相机导出来的名字全是 IMG 开头加数字,传到电脑上还和上次旅行的文件重名,差点互相覆盖。他的需求是:把这批照片按旅行日期加序号重命名,例如改成日期加三位数序号,同时保留原始扩展名,改名前先留一份原样备份。
脚本思路是先排好顺序,再逐个改名。用 Get-ChildItem 列出文件夹里的照片,按名字排序后逐个处理,序号从 001 开始递增。改名用 Rename-Item,它只能改名不能移动位置,官方文档写得很清楚,正好避免误把文件挪到别处。日期直接用文件夹名里的旅行日期,例如 20260901,这样简单可靠。
运行之前必须做两件事。第一,把照片文件夹完整复制一份,改名只在副本上先试跑,确认无误再对原件操作。第二,先预览改名后的名字列表,逐行检查有没有重名、有没有序号跳号,确认没问题再真正执行。直接对两百张原照片改名又没有备份,是最容易出事故的做法。
怎么确认它跑对了,同样看三处。第一是数量:改名前后文件总数必须一致,少一个都不行。第二是顺序:按新名字排序后序号应当连续,内容与序号大体对应。第三是可用性:随机打开几张改名后的照片,确认能正常显示、没有损坏。某张改名失败时脚本通常会报错停在那一行,先看报错里提到的文件名,再单独处理,不要反复整批重跑。
1$folder = "D:\照片\20260901-旅行"
2$files = Get-ChildItem -Path $folder -File -Filter *.jpg | Sort-Object Name
3$i = 1
4foreach ($file in $files) {
5 $newName = "20260901-{0:D3}.jpg" -f $i
6 Rename-Item -Path $file.FullName -NewName $newName
7 $i++
8}
这段脚本每一行都很好读:先找到照片、按名字排好队,再一个一个改成日期加序号。序号用三位数格式,排到 999 之前都不会乱。如果照片里既有 jpg 又有 png,需要按扩展名各跑一遍,不要混在一个循环里硬写。
案例三:一键备份工作目录,下班前点一下就行
小陈的工作目录里有正在写的方案、表格和参考资料,分散在三四个子文件夹里。她每天下班前都要手动复制一遍到移动硬盘,忙起来就忘,等到电脑出问题才想起上次备份是三天前。她的需求是:双击一个脚本,就把整个工作目录完整拷到移动硬盘上的当天日期文件夹里,拷完告诉她拷了多少个文件、有没有失败。
脚本思路是复制加记录。先按当天日期生成目标文件夹,例如备份盘里的 2026-09-06,再用 Copy-Item 加上 Recurse 参数把整个工作目录拷过去。Recurse 是连同子文件夹一起复制,官方文档明确写了这个参数。复制时加上 PassThru 参数,可以返回实际复制的结果,方便最后数一数拷了多少个文件。
运行与检查要分两步走。第一步是试跑:先用一个小的测试文件夹跑一遍,确认目标盘里生成了当天的备份文件夹,里面的子文件夹结构与原件一致。第二步才是正式用:把脚本保存为 ps1 文件,右键选择使用 PowerShell 运行,或者在桌面建一个快捷方式,下班前点一下。运行中途不要拔掉移动硬盘,也不要让电脑进入睡眠,等窗口显示完成再离开。
怎么确认它跑对了,重点不在脚本有没有报错,而在备份能不能用。第一是比数量:备份里的文件总数与原件要一致,重点核对最近修改过的几个文件。第二是抽查打开:随机打开备份里的文档与表格,确认内容最新、没有损坏。第三是看时间:备份文件夹的修改时间应当是今天。如果只看脚本显示完成、从来不打开备份检查,那这个备份等于没验过。完整自动方案可参考本站另一篇Windows 自动备份这样设:一次配好,以后不用管。
从哪一个先开始
三个案例都很小,但都能立刻省下每周重复花掉的时间。建议先做第三个一键备份,因为它直接保护工作成果;再做第一个下载文件夹整理;最后做第二个批量重命名,等下次旅行回来再用也不迟。每个脚本先在测试文件夹里试,确认检查都通过,再用到正式文件夹上。
还想让电脑在固定时间自动做更多事,可以看看本站另一篇 Copilot 自动化文章,地址是用 Copilot 自动处理电脑日常任务。它的思路是借助现成工具,本文讲的是自己写几行看得懂的命令,两种方式可以互相补充。