PowerShell 基本语法

PowerShell 不只是一个命令行工具,它还是一个完整的脚本语言。学习它的基本语法,就像学习一门新的编程语言一样,是入门的重要一步。

本节将详细介绍 PowerShell 中最基本的语法元素,包括变量、注释、数据类型、运算符、条件判断、循环结构等内容,为后续编写脚本打下扎实基础。


一、注释

PowerShell 中的注释与大多数编程语言相似,用于解释代码,不会被执行。

单行注释使用 # 开头:

# 这是一个单行注释
Write-Output "Hello, PowerShell"

多行注释使用 <##> 包裹:

<#
这是多行注释
可用于文档说明
#>

二、变量

定义变量

PowerShell 中变量以 $ 符号开头,无需事先声明类型:

$name = "Alice"
$age = 25

使用变量

Write-Output "Name: $name"

也可以使用字符串插值:

Write-Output "User: $($name), Age: $($age)"

三、数据类型

PowerShell 是弱类型语言,但变量背后都有对应的 .NET 类型。

类型 示例
字符串 $str = "Hello"
整数 $num = 123
小数 $pi = 3.14
布尔值 $isTrue = $true
数组 $arr = @(1, 2, 3)
哈希表 $h = @{Name="Tom"; Age=30}

可以使用 .GetType() 查看变量类型:

$str.GetType().Name   # String

四、运算符

类别 示例 说明
算术运算 + - * / % 常见数学运算
比较运算 -eq -ne -lt -gt 等于、不等于、小于、大于
逻辑运算 -and -or -not 逻辑运算符
字符串 -like -match -replace 模式匹配和替换
包含运算 -in -contains 集合判断

示例:

5 -eq 5       # True
"abc" -like "a*"  # True

五、条件判断

if 语句

if ($age -ge 18) {
    Write-Output "成年人"
} else {
    Write-Output "未成年人"
}

if-elseif-else

if ($score -ge 90) {
    "优秀"
} elseif ($score -ge 60) {
    "及格"
} else {
    "不及格"
}

六、循环结构

for 循环

for ($i = 1; $i -le 5; $i++) {
    Write-Output "第 $i 次循环"
}

foreach 循环

$colors = @("Red", "Green", "Blue")
foreach ($color in $colors) {
    Write-Output "颜色:$color"
}

while 循环

$count = 0
while ($count -lt 3) {
    Write-Output $count
    $count++
}

七、函数定义

PowerShell 允许自定义函数,语法如下:

function Say-Hello {
    param([string]$name)
    Write-Output "Hello, $name!"
}

Say-Hello -name "PowerShell"

也可以使用简洁写法:

function Square($x) { return $x * $x }
Square 5  # 输出 25

八、错误处理

使用 try {} catch {} 块来处理可能出错的语句:

try {
    Get-Item "C:\NotExist.txt"
} catch {
    Write-Output "找不到文件"
}

九、脚本文件基本格式

PowerShell 脚本文件使用 .ps1 后缀名。可以使用 VS Code 或记事本创建:

# hello.ps1
$name = "World"
Write-Output "Hello, $name"

在 PowerShell 中运行:

.\hello.ps1

注意:如果脚本未能执行,请检查执行策略(Get-ExecutionPolicy),必要时使用 Set-ExecutionPolicy 允许运行脚本。