【搜索列表中的关键字】
ipconfig | Select-String "IP"
#查询进程qq的详细信息
Get-Process qq
Get-Process qq | format-list *
#查看内存占用大于100mb的进程
Get-Process | where-object {$_.WorkingSet -gt 100mb}
#查看名称匹配字符"sql"的所有进程,casesensitive 区分大小写
Get-Process | Select-String "sql"
Get-Process | Select-String -pattern "sql"
Get-Process | Select-String "sql" -casesensitive
#查看前N列或者后N列
Get-Process | Select -First 1
Get-Process | Select -Last 1
Get-Process | select -Last 1 | fl *
【搜索列表中的关键字】
Get-Service
#搜索名为"MSSQLSERVER"的服务
Get-Service -Name "MSSQLSERVER"
Get-Service | Where-Object {$_.Name -eq "MSSQLSERVER"}
#从多列中选择两列输出 DisplayName,Name
Get-Service | Format-Table DisplayName,Name
#搜索名不包含字符"SQL"的服务
Get-Service | Where {$_.Name -notlike "*SQL*"}
#搜索名包含字符"SQL"的服务(名字显示不全省略,使用Format-Table -AutoSize可完整显示)
Get-Service -Name "*SQL*"
Get-Service | Where {$_.Name -like "*SQL*"}
Get-Service | Where-Object {$_.Name -like '*SQL*' }
Get-Service | Where-Object { $_.Name -match "SQL" }
Get-Service | Where-Object { $_.Name -match "SQL" } | Format-Table -AutoSize
Get-Service | ? { $_.Name -match "SQL" } | Format-Table -AutoSize
其他查询
Get-Service | ForEach-Object { $_.name }
Get-Service | select -first 5
Get-Service | select -last 5
Get-Service | select -last 5 | & {begin {Get-Date} process{ $_.Name }end {Get-Date}}
格式化输出方式(更多参考文章下面表格)
"{0:D}" -f (Get-Date)
"Random:{0:0%}" -f (get-random)
"Date:{0:D} Random: {1:0%}" -f (Get-Date),(get-random)
#列name右对齐({0,30}表示 -f 右边的第一列,长度为30,正30为右对齐)
dir | ForEach-Object { "{0,30}" -f $_.name}
#列name左对齐(负30为左对齐)
dir | ForEach-Object { "{0,-30}" -f $_.name}
#{0,-10}: 0为第一列Length,-10为左对齐,长度为10
#{1,20}: 1为第二列name,20为右对齐,长度为20
dir | ForEach-Object { "{1,20} 空格 {0,-10}" -f $_.Length,$_.name}
【指定按某列或多列排序】
#默认升序
Get-Service | Sort-Object DisplayName
Get-Service | Sort-Object -Descending DisplayName
Get-Service | Sort-Object @{expression="Status";Descending=$true},@{expression="DisplayName";Ascending=$true}
【搜索文件中的关键字】
Select-String -path F:\test.txt -pattern "SQL"
Select-String -path F:\*.txt -pattern "SQL"
Select-String -path F:\*.txt -pattern "SQL","Get" -notmatch
【输出到系统文件】
Get-Service | Sort-Object DisplayName | Format-Table DisplayName >E:\kk.txt
Get-Service | Sort-Object DisplayName | Format-Table DisplayName >>E:\kk.txt
【输出文件内容】
Get-Content E:\kk.txt
Get-Content E:\*.txt | Select-String "Linux"
字符串操作符 | ||
操作符 | 描述 | 示例 |
* | 代表一个字符串 | “PsTips.Net”-like “*” |
+ | 合并两个字符串 | “Power”+ “Shell” |
-replace,-ireplace | 替换字符串,大小写不敏感 | “PsTips.Net”-replace “tip”,”1″ |
-creplace | 替换字符串,大小写敏感 | “PsTips.Net”-replace “Tip”,”1″ |
-eq,-ieq | 验证是否相等,大小写不敏感 | “Power”-eq “power” |
-ceq | 验证是否相等,大小写敏感 | “Power”-eq “Power” |
-like,-ilike | 验证字符串包含关系,允许模式匹配,大小写不敏感 | “PsTips.Net”-like “p*” |
-clike | 验证字符串包含关系,允许模式匹配,大小写敏感 | “PsTips.Net”– clike “P*” |
-notlike,-inotlike | 验证字符串不包含关系,允许模式匹配,大小写不敏感 | “PowerShell”-notlike “PS*” |
-cnotlike | 验证字符串不包含关系,允许模式匹配,大小写敏感 | “PowerShell”-cnotlike “PO*” |
-match,-imatch | 验证模式匹配,大小写不敏感 | “PowerShell”-match “P*” |
-cmatch | 验证模式匹配,大小写敏感 | “Hello”-match “[ao]” |
-notmatch,-inotmatch | 验证模式不匹配,大小写不敏感 | “Hello”-notmatch “[ao]” |
-cnotmatch | 验证模式不匹配,大小写敏感 | “Hello”-cnotmatch “[ao]” |
格式化 | |||
符号 | 类型 | 调用示例 | 输入结果 |
# | 数字占位符 | “{0:(#).##}”-f $value | (1000000) |
% | 百分号 | “{0:0%}”-f $value | 100000000% |
, | 千分符 | “{0:0,0}”-f $value | 1,000,000 |
,. | 一千的整数倍 | “{0:0,.}” -f $value | 1000 |
. | 小数点 | “{0:0.0}”-f $value | 1000000.0 |
0 | 占位符 0 | “{0:00.0000}”-f $value | 1000000.0000 |
c | 货币 | “{0:c}”-f $value | ¥1,000.00 |
d | 十进制 | “{0:d}”-f $value | 1000000 |
e | 科学计数法 | “{0:e}”-f $value | 1.000000e+006 |
e | 指数通配符 | “{0:00e+0}”-f $value | 10e+5 |
f | 保留小数位 | “{0:f}”-f $value | 1000000.00 |
g | 常规 | “{0:g}”-f $value | 1000000 |
n | 千分符 | “{0:n}”-f $value | 1,000,000.00 |
x | 十六进制 | “0x{0:x4}”-f $value | 0x4240 |
日期格式化 | |||
符号 | 类型 | 调用示例 | 输出 |
d | 短日期格式 | “{0:d}”–f $value | 2013/6/1 |
D | 长日期格式 | “{0:D}”–f $value | 2013年6月1日 |
t | 短时间格式 | “{0:t}”–f $value | “{0:t}”–f $value |
T | 长时间格式 | “{0:T}”–f $value | 23:18:50 |
f | 完整日期和时间(短) | “{0:f}”–f $value | 2013年6月1日23:18 |
F | 完整日期和时间(长) | “{0:F}”–f $value | 2013年6月1日23:18:50 |
g | 标准时间 (短) | “{0:g}”–f $value | 2013/6/123:18 |
G | 标准时间长 (长) | “{0:G}”–f $value | 2013/6/123:18:50 |
M | 月日格式 | “{0:M}”–f $value | 6月1日 |
r | RFC1123日期格式 | “{0:r}”–f $value | Sat,01 Jun 2013 23:18:50 GMT |
s | 排序日期格式 | “{0:s}”–f $value | 2013-06-01T23:18:50 |
u | 通用日期格式 | “{0:u}”–f $value | 2013-06-0123:18:50Z |
U | 通用排序日期 GMT格式 | “{0:U}”–f $value | 2013年6月1日15:18:50 |
Y | 年/月格式模式 | “{0:Y}”–f $value | 2013年6月 |
自定义日期格式 | |||
dd | 一个月中天 | “{0:dd}”-f $value | 01 |
ddd | 星期的缩写 | “{0:ddd}”-f $value | 周六 |
dddd | 完整星期 | “{0:dddd}”-f $value | 星期六 |
gg | 纪年法 | “{0:gg}”-f $value | 公元 |
hh | 小时0-12 | “{0:hh}”-f $value | 11 |
HH | 小时0-23 | “{0:HH}”-f $value | 23 |
mm | 分钟 | “{0:mm}”-f $value | 18 |
MM | 月份 | “{0:MM}”-f $value | 06 |
MMM | 月份缩写 | “{0:MMM}”-f $value | 六月 |
MMMM | 完整月份 | “{0:MMMM}”-f $value | 六月 |
ss | 秒 | “{0:ss}”-f $value | 55 |
tt | 上午或者下午 | “{0:tt}”-f $value | 下午 |
yy | 两位数字的年份 | “{0:yy}”-f $value | 13 |
yyyy | 四位数字的年份 | “{0:yyyy}”-f $value | 2013 |
zz | 不包含分钟的时区 | “{0:zz}”-f $value | +08 |
zzz | 包含分钟的时区 | “{0:zzz}”-f $value | +08:00 |