非常游戏网
win10如何编写PowerShell自动化脚本_win10PowerShell自动化脚本设置教程附详细步骤

win10如何编写PowerShell自动化脚本_win10PowerShell自动化脚本设置教程附详细步骤

2026-04-09系统教程177897

需启用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