[PowerShell 入门教程] 第9.5天(间章):PowerShell 常见 Cmdlet 速查手册

📅 第9.5天(间章):PowerShell 常见 Cmdlet 速查手册

用好PowerShell还是需要多了解、多实际应用系统的Cmdlet

下面是专为已有基础的学习者设计,系统梳理 7 大类高频实用 Cmdlet,涵盖:

  • 过滤与选择
  • 进程与服务管理
  • 文件与目录操作
  • 网络诊断与配置
  • 实用工具(Utility)
  • 控制台交互(ReadLine)
  • 其他“宝藏”Cmdlet

每个 Cmdlet 均标注 最常用参数典型用法避坑提示,可作为日常开发/运维的快速参考。

致我们终将逝去的青春 ---《YOYO原创彩蛋》                                                                                  

💡 建议:将本页打印为速查卡

致我们终将逝去的青春 ---《原创彩蛋》                                                                                             

一、过滤与选择(Filtering & Selection)

Cmdlet常用参数示例说明
Where-Object (?)-Property-EQ, 脚本块 {}Get-Process | Where-Object CPU -gt 100
Get-Service | ? Status -eq 'Running'
过滤管道对象
Select-Object (select)-Property-First-ExpandPropertyGet-ChildItem | Select-Object Name, Length<br>
Get-ChildItem | Select-Object -ExpandProperty FullName
自定义输出字段
Sort-Object (sort)-Property-Descending

Get-Process | Sort-Object WorkingSet -Descending |

   Select -First 5

按内存使用排序前5进程
Group-Object-PropertyGet-WinEvent -LogName System -MaxEvents 100 |          Group-Object LevelDisplayName按事件级别分组

二、进程与服务管理

Cmdlet常用参数示例说明
Get-Process (ps)-Name-IdGet-Process chrome, edge<br># 查看高CPU进程<br>Get-Process | Where CPU -gt 50获取本地/远程进程
Stop-Process-Name-ForceStop-Process -Name notepad -Force强制结束进程
Get-Service-Name-DisplayNameGet-Service bits, dhcp<br># 所有运行中的服务<br>Get-Service | Where Status -eq Running查询服务状态
Start-Service / Stop-Service-NameRestart-Service spooler -PassThru重启打印服务并返回对象
Get-EventLog (旧) / Get-WinEvent (新)-LogName-MaxEventsGet-WinEvent -LogName Application -MaxEvents 10查看应用日志(推荐 Get-WinEvent

三、文件与目录管理 

Cmdlet常用参数示例说明
Get-ChildItem (lsdir)-Path-Recurse-File-Directory# 列出所有 .log 文件(含子目录)
Get-ChildItem C:\Logs -Recurse -Include *.log -File
遍历文件系统
New-Item-Path-ItemType-ValueNew-Item "C:\temp\readme.txt" -ItemType File -Value "Hello"
New-Item "C:\projects" -ItemType Directory
创建文件或目录
Copy-Item-Path-Destination-RecurseCopy-Item "C:\data\*" "D:\backup\" -Recurse -Force复制整个目录
Move-Item-Path-DestinationMove-Item "old.log" "archive\"移动或重命名
Remove-Item (rmdel)-Path-Recurse-ForceRemove-Item "temp\*" -Recurse -Force删除文件/目录(强制)
 Get-Content (cattype)-Path-Tail-TotalCount-Raw# 查看日志最后10行<br>Get-Content "C:\app.log" -Tail 10
# 读取整个文件为单字符串
$text = Get-Content file.txt -Raw
高效读取文件内容
 Set-Content-Path-Value-EncodingSet-Content "config.txt" "debug=true"`
# 覆盖写入(不保留原内容)
覆盖写入文件
 Add-Content-Path-Value-EncodingAdd-Content "audit.log" "$(Get-Date): User login"# 追加日志追加内容到文件末尾

💡 Content 系列区别

  • Set-Content覆盖文件
  • Add-Content追加到末尾
  • Get-Content -Raw:返回单字符串(适合正则全文匹配)
  • Get-Content -Tail N:高效读大文件尾部(内存友好)

四、网络相关

Cmdlet常用参数示例说明
Test-Connection-ComputerName-Count-Quiet# 快速检测是否在线<br>if (Test-Connection google.com -Count 1 -Quiet) {<br> Write-Host "Online"<br>}替代 ping
Resolve-DnsName-Name-TypeResolve-DnsName example.com -Type ADNS 查询(替代 nslookup
Get-NetIPAddress-AddressFamily-InterfaceAliasGet-NetIPAddress -AddressFamily IPv4 |<br> Select InterfaceAlias, IPAddress查看本机 IP 配置
Invoke-WebRequest (iw)-Uri-OutFile-UseBasicParsingiw "https://example.com/file.zip" -OutFile "download.zip"下载文件(兼容无 IE 环境)
Invoke-RestMethod (irm)-Uri-Method-Body$users = irm "https://jsonplaceholder.typicode.com/users"<br>$users[0].name自动解析 JSON/XML

五、实用工具(Utility)

Cmdlet常用参数示例说明
Measure-Command-Expression$time = Measure-Command {<br> Get-Process | Where CPU -gt 10<br>}<br>Write-Host "耗时: $($time.TotalMilliseconds) ms"性能基准测试
Get-Date-Format, 方法如 .AddDays()$yesterday = (Get-Date).AddDays(-1)<br>$stamp = Get-Date -Format "yyyyMMdd_HHmmss"日期计算与格式化
ConvertTo-Json-Depth-Compress$config = @{ Port=8080; SSL=$true }<br>$config | ConvertTo-Json -Depth 3 | Set-Content config.json对象 → JSON
Export-Csv-Path-NoTypeInformationGet-Process | Select Name, Id, CPU | Export-Csv procs.csv -NTI导出为 CSV(Excel 友好)
Out-File-FilePath-Encoding-Append"Error: disk full" | Out-File app.log -Append -Encoding UTF8带编码控制的文件输出

六、控制台交互(ReadLine & Console)

Cmdlet常用参数示例说明
Read-Host-Prompt-AsSecureString$user = Read-Host "Username"<br>$pass = Read-Host "Password" -AsSecureString安全输入凭据
Write-Host-ForegroundColorWrite-Host "[INFO] Starting..." -Fore Green<br>Write-Host "[ERROR] Failed!" -Fore Red仅用于用户提示(破坏管道)
Write-Verbose-Message, 需 -Verbose 开关function Test-App {<br> [CmdletBinding()]<br> param()<br> Write-Verbose "Connecting to DB..."<br>}<br>Test-App -Verbose可开关的调试信息
Clear-Host (cls)cls # 清屏清除控制台
Get-History-CountGet-History -Count 5 # 查看最近5条命令命令历史回溯

七、其他“宝藏”Cmdlet

Cmdlet示例用途
Get-Member (gm)Get-Process | Get-Member查看对象有哪些属性/方法
Get-Command (gcm)Get-Command *json* # 找所有含 json 的命令发现可用命令
Get-HelpGet-Help Get-Process -Examples查看命令帮助和示例
Compare-Object$a = "file1", "file2
$b = "file2", "file3"
Compare-Object $a $b
比较两个集合差异
ForEach-Object (%)1..3 | ForEach-Object { $_ * 2 } # 输出 2,4,6管道循环处理
Get-Error (PS 7+)Get-Process nonexistent -ErrorAction SilentlyContinue<br>Get-Error查看详细错误堆栈

🔑 终极建议:建立你的“Cmdlet 反射弧”

场景推荐 Cmdlet
“我想看某个东西”Get-*(如 Get-ProcessGet-Service
“我想改/删/建某个东西”Set-*Remove-*New-*
“我想筛选结果”Where-ObjectSelect-Object
“我想保存结果”Export-CsvOut-FileSet-Content
“我想知道这个对象有什么”Get-Member
“我不记得命令名”Get-Command *keyword*

示例:建议如果日常运维一次输入的命令就用Alias,写脚本还是用全名。

get-process|? { $_.Name -match 'win'}|sort ProcessName


🔑 核心原则总结

  1. 管道优先Get-X | Where Y | Select Z 是 PowerShell 思维核心
  2. 对象而非文本:避免 Write-Host保持对象流(便于后续处理)
  3. 参数缩写:常用参数可缩写(如 -Path → -Pa),但脚本中建议写全
  4. 帮助即文档Get-Help <Cmdlet> -Examples 是最佳学习入口
  5. 安全默认Remove-Item 等危险操作默认带确认,用 -Force 或 -Confirm:$false 自动化

📌 附:常用别名速查

别名全名用途
?Where-Object过滤
%ForEach-Object循环
lsdirGet-ChildItem列目录
cattypeGet-Content读文件
cpCopy-Item复制
mvMove-Item移动
rmdelRemove-Item删除
psGet-Process查进程
gciGet-ChildItem列目录(完整别名)
giGet-Item获取项

💡 提示:用 Get-Alias 查看所有别名;用 Set-Alias 创建自定义别名(不推荐在脚本中使用)


此间章可作为 日常开发速查表,建议结合 Get-HelpGet-Command 动态探索。

课后习题,使用这些Cmdlet,查阅Microsoft说明书例如

查阅Get-Content命令和它的示例

Get-Content (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值