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 允许运行脚本。