PowerShell 基本语法

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++) { }经典计数循环
foreachforeach ($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 / dowhile (条件) { }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 / finallypowershell<br>try { 1/0 } catch { "除以0了!$_" } finally { "不管怎样都执行" }
$ErrorActionPreference = "Stop"让脚本遇到错误立刻停止
执行外部程序& "路径" 或直接写程序名& "C:\Program Files\Notepad\notepad.exe"
ping 8.8.8.8
获取对象成员| Get-MemberGet-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% 的自动化任务都能轻松搞定!

现在你想:

  1. 立刻来 10 个最实用的“一键脚本”模板?
  2. 还是深入学“高级函数(带管道支持、参数验证)”?
  3. 或者直接给你一份可打印的“PowerShell 语法速查卡”?

随时说,我继续陪你肝!

文章已创建 2965

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部