脚本

help about_Scripts
help about_InlineScript

PowerShell 脚本扩展名为 .ps1

运行脚本

双击运行

Windows 下双击脚本可以运行脚本。这时 PowerShell console 窗口一闪而过,如果脚本有错,来不及查看错误,如何让窗口停留?

一种办法,在脚本最后添加

Read-Host "Press Enter key to exit"

另一种办法

Start-Process powershell.exe "-NoExit path\to\script"

在 console 运行脚本

.\hello.ps1 # 以关联程序 powershell.exe 运行
powershell hello.ps1

查看 powershell 命令行参数

powershell -h

PowerShell 6 将未知参数视为 -File,旧版本视为 -Commandchangelog

powershell hello
# 在 PowerShell 6 下即
powershell -File hello

ExecutionPolicy

在运行脚本时,可能报错,提示“此系统上禁止运行脚本”。

下面修改运行策略,让当前用户可以运行本地未签名的脚本。修改的设置将保存到注册表中,因此运行一次即可。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Get-ExecutionPolicy -List

Windows 10 启用开发者模式后,可以运行本地未签名的脚本。

脚本参数

在脚本内 $Arg 变量保存着传给脚本的参数,它是一个数组,从 0 开始。

$PSScriptRoot  # 脚本所在目录
$PSCommandPath # 脚本路径
$Arg[0]        # 脚本的第一个参数

脚本可以使用 param 语句,从而让脚本像 cmdlet 一样,实现必选参数,开关参数,参数验证等功能;并且 PowerShell console 可以补全参数名字。

开发工具