在 PowerShell 中,Cmdlet(读作 “command-let”)是轻量级的命令,用于执行特定的操作。它们是 PowerShell 的核心组成部分,通常遵循 “动词-名词” 命名约定(如 Get-Process
、Set-Item
等)。以下是 PowerShell 中常用的 Cmdlet 分类及示例:
1. 基本操作
Cmdlet | 说明 | 示例 |
---|
Get-Command | 列出所有可用命令 | Get-Command |
Get-Help | 查看命令帮助文档 | Get-Help Get-Process |
Get-Alias | 查看命令的别名 | Get-Alias dir |
2. 文件和目录管理
Cmdlet | 说明 | 示例 |
---|
Get-ChildItem | 列出目录内容(类似 dir /ls ) | Get-ChildItem C:\ |
Copy-Item | 复制文件或目录 | Copy-Item file.txt dest\ |
Remove-Item | 删除文件或目录 | Remove-Item old.txt |
New-Item | 创建文件或目录 | New-Item -Path .\new.txt -ItemType File |
3. 进程和服务管理
Cmdlet | 说明 | 示例 |
---|
Get-Process | 获取运行中的进程 | Get-Process notepad |
Stop-Process | 终止进程 | Stop-Process -Name notepad |
Get-Service | 查看系统服务状态 | Get-Service WinRM |
Start-Service | 启动服务 | Start-Service WinRM |
4. 系统信息
Cmdlet | 说明 | 示例 |
---|
Get-ComputerInfo | 获取系统信息 | Get-ComputerInfo |
Get-Date | 获取当前日期和时间 | Get-Date |
Get-Host | 查看 PowerShell 宿主信息 | Get-Host |
5. 网络相关
Cmdlet | 说明 | 示例 |
---|
Test-NetConnection | 测试网络连接(类似 ping ) | Test-NetConnection google.com |
Invoke-WebRequest | 发送 HTTP 请求(类似 curl ) | Invoke-WebRequest -Uri "https://example.com" |
6. 变量和环境
Cmdlet | 说明 | 示例 |
---|
Get-Variable | 获取变量值 | Get-Variable PSVersionTable |
Set-Variable | 设置变量值 | Set-Variable name "value" |
Get-Environment | 查看环境变量 | Get-ChildItem Env: |
7. 数据处理
Cmdlet | 说明 | 示例 |
---|
Select-Object | 筛选对象属性 | Get-Process | Select-Object Name, CPU |
Where-Object | 过滤数据(类似 WHERE 子句) | Get-Service | Where-Object {$_.Status -eq "Running"} |
Sort-Object | 排序数据 | Get-Process | Sort-Object CPU -Descending |
8. 脚本执行与模块
Cmdlet | 说明 | 示例 |
---|
Invoke-Expression | 执行字符串作为命令 | Invoke-Expression "Get-Date" |
Import-Module | 加载模块 | Import-Module AzureRM |
特点
- 管道(Pipeline)支持:Cmdlet 可通过
|
传递对象,而非文本。Get-Process | Where-Object { $_.CPU -gt 10 } | Sort-Object -Property CPU
- 统一命名规范:如
Get-*
(查询)、Set-*
(修改)、New-*
(创建)等。 - 面向对象:输出是结构化对象,而非纯文本。
查找更多 Cmdlet
PowerShell 的 Cmdlet 设计使其在系统管理和自动化任务中极为高效!