【搜索列表中的关键字】
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 |