概要
本系列是一个重新学习PowerShell的笔记,内容引用自PowerShell中文博客
1.快捷键
ALT+F7 清除命令的历史记录
PgUp PgDn 显示当前会话的第一个命令和最后一个命令
Enter 执行当前命令
End 将光标移至当前命令的末尾
Del 从右开始删除输入的命令字符
Esc 清空当前命令行
F2 自动补充历史命令至指定字符
(例如历史记录中存在Get-Process,按F2,提示"Enter char to copy up to",键入‘s’,自动补齐命令:Get-Proce)
F4 删除命令行至光标右边指定字符处
F7 对话框显示命令行历史记录
F8 检索包含指定字符的命令行历史记录
F9 根据命令行的历史记录编号选择命令,历史记录编号可以通过F7查看
左/右方向键 左右移动光标
上/下方向键 切换命令行的历史记录
Home 光标移至命令行最左端
Backspace 从右删除命令行字符
Ctrl+C 取消正在执行的命令
Ctrl+左/右方向键 在单词之间移动光标
Ctrl+Home 删除光标最左端的所有字符
Tab 自动补齐命令或者文件名
基础命令
排序
PS> Get-Process | Sort-Object -Descending CPU
多字段排序
PS> Dir | Sort-Object -Descending Name,LastAccessTime
多字段升降排序
PS>Dir | Sort-Object @{expression="Length";Descending=$true},@{expression="Name";Ascending=$true}
对内容分组
PS> Get-Service | Group-Object Status
使用表达式分组
PS> ls | Group-Object {$_.Length -gt 1kb}
截取文件名文组
PS> ls | Group-Object {$_.name.SubString(0,1).toUpper()}
格式化输出
PS> Get-Service | Sort-Object -Descending Name | Format-Table Name,StartType
使用格式化命令分组
PS> Dir | Sort-Object Extension, Name | Format-Table -groupBy Extensio
根据当前应用程序的发布者分组
PS> Get-Process | Group-Object Company -NoElement
格式化输出
PS> Get-Service | Sort-Object -Descending Name | Format-Table Name,StartType
模糊匹配
PS> Get-Service -Name "*Dev*" | Sort-Object -Descending Name | Format-Table Name,StartType
过滤
获取前几条
PS> Get-Process | Sort-Object -Descending CPU | Select-Object -First 10
获取前几条并指定列
PS> Get-Process | Sort-Object -Descending CPU | Select-Object -First 10 Name,CPU
获取对象成员
PS> Get-Service | Get-Member
指定查询条件
PS> Get-Service | Where-Object {$_.Status -eq "Running"}
获取Windows Object
PS> Get-WmiObject Win32_UserAccount -filter "LocalAccount=True AND Name='guest'" | Select-Object Name,Description,Disabled
自定义处理管道结果
PS> ls | SELECT-Object {"文件名:{0} 文件大小{1}KB: " -f $_.Name,($_.length/1MB).tostring()}
排序去重
PS> ls | foreach{$_.extension} | Sort-Object |Get-Unique