需启用PowerShell执行策略、创建.ps1脚本、通过控制台验证运行、用任务计划程序或PowerShell命令行配置定时/登录触发的自动化任务。
如果您希望在Windows 10中实现重复性任务的自动执行,例如定时清理临时文件、批量重命名或启动特定程序,则需编写PowerShell自动化脚本并正确配置运行环境。以下是完成该目标的具体步骤:
一、启用PowerShell脚本执行权限
Windows默认禁止运行本地.ps1脚本,以防止未经授权的代码执行。修改执行策略是运行自定义脚本的前提条件。
1、按下 Win + X 组合键,从弹出菜单中选择Windows PowerShell(管理员)。
2、在管理员窗口中输入命令:Get-ExecutionPolicy,确认当前策略是否为 Restricted。
3、若返回结果为 Restricted,则执行:Set-ExecutionPolicy RemoteSigned -Force。
4、系统提示确认时,输入 Y 并按回车键完成设置。
二、创建并保存PowerShell脚本文件
PowerShell脚本必须以 .ps1 为扩展名保存,且需使用纯文本编辑器(如记事本)编写,避免富文本格式干扰执行。
1、右键桌面或目标文件夹空白处,选择新建 → 文本文档。
2、将文件重命名为 auto_clean.ps1(注意扩展名必须显示为.ps1;若未显示,请在文件夹选项中取消勾选“隐藏已知文件类型的扩展名”)。
3、右键该.ps1文件,选择编辑,在其中输入以下内容:
Write-Output "开始清理临时文件..."
Remove-Item "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue
Write-Output "清理完成"
4、保存文件并关闭编辑器。
三、验证脚本能否正常运行
直接双击.ps1文件无法执行,必须通过PowerShell控制台调用,以确保上下文与执行策略匹配。
1、打开Windows PowerShell(非管理员亦可)。
2、使用 cd 命令切换到脚本所在目录,例如:cd C:\Scripts。
3、输入命令:.\auto_clean.ps1(注意开头的 .\ 不可省略)。
4、观察控制台输出是否显示“开始清理临时文件...”及“清理完成”,确认脚本逻辑有效。
豆包MarsCode
豆包旗下AI编程助手,支持DeepSeek最新模型
四、通过计划任务实现自动化执行
手动运行脚本仅解决单次需求,要实现周期性自动执行,必须借助Windows任务计划程序绑定PowerShell进程。
1、按下 Win + R,输入 taskschd.msc 并回车,打开任务计划程序。
2、在右侧面板点击创建基本任务,输入名称如 每日临时文件清理,点击下一步。
3、选择触发器为每天,设置起始时间为 06:00,点击下一步。
4、操作类型选择启动程序,点击下一步。
5、在“程序或脚本”栏输入:powershell.exe;
6、在“添加参数(可选)”栏输入:-ExecutionPolicy Bypass -File "C:\Scripts\auto_clean.ps1";
7、在“起始于(可选)”栏输入脚本所在目录路径,例如:C:\Scripts\;
8、点击完成,任务即创建成功。
五、通过PowerShell命令行直接注册计划任务
相比图形界面,使用PowerShell cmdlet创建任务更利于复现与批量部署,且支持更高阶配置(如以最高权限运行、登录触发等)。
1、以管理员身份运行Windows PowerShell。
2、执行以下命令创建一个用户登录时自动运行的脚本任务:
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File `"C:\Scripts\auto_clean.ps1`""
$trigger = New-ScheduledTaskTrigger -AtLogOn
$principal = New-ScheduledTaskPrincipal -UserId "$env:USERNAME" -LogonType Interactive -RunLevel Highest
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName "登录清理任务" -Action $action -Trigger $trigger -Principal $principal -Settings $settings