PowerShell 脚本执行与命令行执行的区别
- 笔记
- 2025-12-26
- 229热度
- 0评论
PowerShell 脚本执行与命令行执行的区别
一、在 Windows 中使用 PowerShell,常见有两种形式
- 在命令行里直接敲 PowerShell 命令
- 编写
.ps1脚本文件并执行
两者用途不同,不能混为一谈。
二、直接在命令行执行 PowerShell 命令
指的是在 PowerShell 窗口 中直接输入命令:
Get-Process
Get-ChildItem
特点:
- 立即执行,适合临时操作、调试
- 不受脚本文件限制
- 不涉及 ExecutionPolicy
- 关闭窗口后命令即失效
适用场景:
- 日常运维
- 命令测试
- 交互式操作
三、PowerShell 脚本执行(.ps1)
将多条命令写入 .ps1 文件,例如:
Get-Process
Get-Date
通过 PowerShell 解释器执行:
powershell -File script.ps1
特点:
- 可重复执行,适合自动化
- 可被任务计划、快捷方式调用
- 受 ExecutionPolicy 约束
- 适合复杂逻辑与长期使用
四、为什么脚本不能直接运行?
默认情况下,Windows 会限制 .ps1 脚本运行:
- 防止误执行恶意脚本
- 这是 ExecutionPolicy 的作用
常见报错:
running scripts is disabled on this system
五、推荐的脚本执行方式
powershell -ExecutionPolicy Bypass -File "E:\code\autoqiandao\edge-auto-sign.ps1"
说明:
Bypass:忽略执行策略,仅当前进程生效- 不修改系统配置
- 最适合自动化和分发脚本
六、脚本执行的常见注意事项
1. 路径
- 含空格必须加引号
- 优先使用绝对路径
2. 权限
- 普通脚本无需管理员
- 涉及系统操作需管理员运行
3. 编码
- 推荐 UTF-8(无 BOM)
4. 当前目录
- 脚本运行时的工作目录不一定是脚本所在目录
- 必要时使用:
$PSScriptRoot
七、简要对比总结
| 项目 | 命令行执行 | 脚本执行 |
|---|---|---|
| 交互性 | 强 | 弱 |
| 是否可复用 | 否 | 是 |
| 是否受 ExecutionPolicy 影响 | 否 | 是 |
| 自动化 | 不适合 | 非常适合 |
八、一句话记忆
命令行是“临时操作”,脚本是“自动化方案”。