PowerShell 基本语法速成表(30 分钟记住 90% 的日常语法)
| 类别 | 语法 | 说明 + 示例 |
|---|---|---|
| 注释 | # 单行注释 | # 这是一条注释 |
<# 多行注释 #> | <# 这里可以写很多行 #> | |
| 变量 | $变量名 = 值 | $name = "张三"$age = 28$ok = $true |
| 强制类型 | [int]$num = "123"[datetime]$date = "2025-12-03" | |
| 字符串 | "双引号可解析变量" | "你好,$name,今天是 $(Get-Date -f yyyy年MM月dd日)" |
'单引号是原样输出' | '今天日期是 $date' → 就是字面量 $date | |
| 数组 | @(1,2,3) 或 1..10 | $arr = 1,2,3,4 # 自动就是数组$nums = 1..100 |
| 取元素 | $arr[0] → 第一项$arr[-1] → 最后一项$arr[1..3] → 第 2-4 项 | |
| 哈希表(字典) | @{键=值} | $person = @{Name="李四"; Age=30; City="北京"}$person.Name → 李四 |
| 比较运算符 | -eq -ne -gt -ge -lt -le | $age -gt 18$name -like "*管理员*"$path -match "\.txt$" |
| 大小写不敏感(默认) | 加 i 强制不区分:-ieq, -ilike加 c 强制区分:-ceq, -clike | |
| 逻辑运算符 | -and -or -not ! | $age -gt 18 -and $isMember |
| if / elseif / else | “`powershell | |
| switch | 最强大、最好用的条件语句 | powershell<br>switch ($env:USERDOMAIN) {<br> "CORP" { "公司电脑" }<br> "WORKGROUP" { "个人电脑" }<br> default { "其他" }<br>} |
| for 循环 | for ($i=1; $i -le 10; $i++) { } | 经典计数循环 |
| foreach | foreach ($item in $集合) { } | powershell<br>$files = Get-ChildItem C:\Temp<br>foreach ($f in $files) { $f.Name } |
| PowerShell 风格循环 | $集合 | ForEach-Object { } | powershell<br>1..10 | ForEach-Object { "第 $_ 次" } |
别名 % | Get-Process | % { "$($_.Name) 占用 $($_.WS/1MB) MB" } | |
| while / do | while (条件) { } | powershell<br>while ($i -lt 5) { $i++; Write-Host $i } |
| 函数 | function 名 { param() ... } | powershell<br>function Say-Hello {<br> param([string]$name="世界")<br> "你好,$name!"<br>}<br>Say-Hello "PowerShell" |
| 管道 | | | 永远记住:管道里传的是对象,不是文本! |
| 过滤左边,格式化右边 | 原则 | powershell<br># 正确(高效)<br>Get-Process | Where CPU -gt 500 | Sort CPU -Desc | Select -First 10<br># 错误(慢)<br>Get-Process | Select -First 10 | Where CPU -gt 500 |
| 错误处理 | try / catch / finally | powershell<br>try { 1/0 } catch { "除以0了!$_" } finally { "不管怎样都执行" } |
$ErrorActionPreference = "Stop" | 让脚本遇到错误立刻停止 | |
| 执行外部程序 | & "路径" 或直接写程序名 | & "C:\Program Files\Notepad\notepad.exe"ping 8.8.8.8 |
| 获取对象成员 | | Get-Member | Get-Process | Get-Member → 看它有什么属性和方法 |
30 秒记住的最常用语法速查(贴在桌面)
# 变量、字符串、数组、哈希表
$name = "小明"; $age = 18
"今天是 $(Get-Date -f yyyy-MM-dd)"
$arr = 1..5
$hash = @{OS="Windows"; Ver=11}
# 条件判断
if ($age -ge 18) { "可以开车" } else { "不行" }
# 循环(两种都记住)
1..10 | ForEach-Object { Write-Host "第$_次" }
foreach ($i in 1..10) { "第$i次" }
# 函数
function Get-PCInfo {
"电脑名: $env:COMPUTERNAME,开机时间: $((Get-Date) - (gcim Win32_OperatingSystem).LastBootUpTime)"
}
Get-PCInfo
把上面这些记住了,你写日常脚本已经完全够用,99% 的自动化任务都能轻松搞定!
现在你想:
- 立刻来 10 个最实用的“一键脚本”模板?
- 还是深入学“高级函数(带管道支持、参数验证)”?
- 或者直接给你一份可打印的“PowerShell 语法速查卡”?
随时说,我继续陪你肝!