以下是 Windows PowerShell 中最常用、最实用的命令(Cmdlet)清单,按功能分类。每个命令都遵循“动词-名词”命名规则,易于理解和记忆。


一、基础信息与帮助

命令 别名 作用
Get-Command gcm 列出所有可用的命令(Cmdlet、函数、别名)
Get-Help help, man 显示命令的帮助文档(用 -Examples 查看实例)
Get-Member gm 查看一个对象的属性、方法(管道后使用,如 `Get-Process \ gm`)
Get-Alias - 列出所有别名,或查找某个命令的别名

二、文件与目录管理

命令 别名 作用
Get-ChildItem ls, dir 列出目录内容(文件、文件夹)
Set-Location cd, chdir 切换当前目录
New-Item ni 创建新文件或文件夹
Copy-Item cp, copy 复制文件或文件夹
Move-Item mv, move 移动文件或文件夹
Remove-Item rm, del, rd 删除文件或文件夹
Rename-Item ren 重命名文件或文件夹
Get-Item - 获取指定路径的项(文件/文件夹)的信息
Get-Content gc, cat, type 读取文本文件内容
Set-Content sc 写入内容到文件(覆盖)
Add-Content ac 向文件追加内容

常用组合示例

  • 列出当前目录所有 .log 文件:Get-ChildItem *.log
  • 递归查找所有大于 100MB 的文件:Get-ChildItem -Recurse | Where-Object { $_.Length -gt 100MB }

三、进程与服务管理

命令 别名 作用
Get-Process ps, gps 列出正在运行的进程
Stop-Process kill 终止一个或多个进程
Start-Process start 启动一个新进程(或打开文件/程序)
Get-Service - 列出 Windows 服务及其状态
Stop-Service - 停止一个服务
Start-Service - 启动一个服务
Restart-Service - 重启一个服务
Set-Service - 更改服务的启动类型(如设为自动启动)

示例

  • 停止记事本进程:Stop-Process -Name notepad
  • 查看所有自动启动但当前停止的服务:Get-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -eq 'Stopped' }

四、筛选、排序与对象操作

命令 别名 作用
Where-Object where, ? 按条件筛选对象(非常常用)
Select-Object select 选择对象的部分属性(类似于 SQL 的 SELECT)
Sort-Object sort 对对象进行排序
Group-Object group 按属性值分组对象
ForEach-Object foreach, % 对每个对象执行一段代码块
Measure-Object measure 计算对象的数量、总和、平均值等

经典管道示例
查看 CPU 占用最高的 5 个进程:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5


五、网络与远程管理

命令 别名 作用
Test-Connection ping 发送 ICMP 请求测试网络连通性(比系统 ping 更可控)
Invoke-WebRequest curl, iwr 访问 HTTP/HTTPS 网页或 API,返回结构化内容
Invoke-RestMethod irm 专门用于调用 REST API(自动解析 JSON/XML)
Get-NetIPAddress - 查看本机 IP 地址配置
Test-NetConnection tnc 高级网络测试(支持端口扫描、路由追踪)
Enter-PSSession etsn 启动一个交互式远程 PowerShell 会话
Invoke-Command icm 在远程计算机上执行命令或脚本

示例

  • 测试 80 端口是否开放:Test-NetConnection google.com -Port 80
  • 从 REST API 获取数据:$data = Invoke-RestMethod -Uri "https://api.github.com/repos/PowerShell/PowerShell" 然后 $data.stargazers_count

六、常用别名速查(方便熟悉 CMD/Linux 的用户)

别名 对应 Cmdlet
ls, dir Get-ChildItem
cd, chdir Set-Location
cat, type Get-Content
ps Get-Process
kill Stop-Process
echo Write-Output
clear Clear-Host
history Get-History
pwd Get-Location

七、实用单行命令示例

  1. 批量重命名所有 .txt 文件,在文件名前加上日期

    Get-ChildItem *.txt | Rename-Item -NewName { “2025-” + $_.Name }
    
  2. 杀死所有占用超过 500MB 内存的 Chrome 进程

    Get-Process chrome | Where-Object { $_.WorkingSet64 -gt 500MB } | Stop-Process
    
  3. 导出本机已安装的所有软件列表到 CSV 文件

    Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher | Export-Csv software.csv
    
  4. 循环重试一个命令直到成功(适合等待服务启动)

    while ( -not (Test-NetConnection localhost -Port 8080) ) { Start-Sleep 5 }
    

如何发现更多命令?

  • 使用 Get-Command 并配合模糊搜索:
    Get-Command *service 列出名称以 service 结尾的命令
    Get-Command -Verb Get 列出所有 Get-* 命令

  • 善用 Get-Help-Examples,例如:
    Get-Help Invoke-WebRequest -Examples

  • 使用 Show-Command 以图形化方式构建命令(仅限 Windows PowerShell 5.1)


掌握以上 20-30 个常用命令,您已经可以完成绝大多数日常管理和自动化任务。PowerShell 的精髓在于“管道 + 对象”,多尝试将命令组合起来,会发现其强大远超传统命令行。