1.管道(pipeline):即在一组命令种,输出的一个命令成为下一个输入。(类似工厂种的生产线)
例如:处理进程大于500kb的进程对象
Get-Process | Where-Object { $_.WorkingSet -gt 500kb} | Sort-Object -Descending Name
2.过滤列表或命令输出项:(Where-Object或where或?)脚本块返回真,输出结果,否则不输出。
例如:列出所有已经停止的服务
Get-Service | Where-Object { $_.Status -eq "Stopped"}
3.数量列表或命令输出的没一项(Foreach-Object、别名foreach和%)
例如:1..10 | Foreache-Object {$_*2}
4.读取数据(Get-Content)
Get-Content -Path 'd:\A.txt'
5.访问环境变量:
a.列出env驱动器的所有子节点:Get-ChildItem env:
b.获取某一环境变量:$env:variableName
例如:$Env:ANT_HOME
c.通过它的提供者路径获得一个环境变量将env:或Environment::提供给Get-ChildItem
Get-ChildItem env:variablename
Get-ChildItem Environment::variablename
6.powershell提供的集中方式访问变量
a.在指定范围内创建变量,在变量的名称前面提供SCOPE关键字:
? $SCOPE:variable = value
b.访问指定范围内的变量,在变量的前面提供范围:
? $SCOPE:variable
c.创建变量,在脚本退出后仍然生效,在变量前提供GLOBAL关键字:
? $GLOBAL:variable = value
d.从一个函数内修改脚本块内的变量范围,在变量前提供SCRIPT关键字
? $SCRIPT:variable = value
?
7.powershell给定的范围:
a.Global:全局范围,在此范围内的变量对其他范围来说都是可见的
b.Script:代表当前脚本范围,此范围内的变量对于其他脚本内的范围都是可见的
c.Local:当前范围.
附加修饰选项:private和AllScope(子范围的修改也会影响父范围)
例如:Function $GLOBAL:myFunction{....}
GLOBAL:myFunction args
8.创建一个.NET对象实例:
a.使用New-Object来创建一个对象的实例。
例如:$random = New-Object System.Random
????? $random.NextDouble();
b.加载库文件,在实例类:
[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms");
$image = New-Object System.Drawing.Bitmap source.gif;
$image.Save("source.jpg","JPEG");
c.创建对象的同时使用它,用括号把New-Object和要实例的类扩起来。
[New-Object Net.WebClient].DownloadString("http://www.iteye.com");
d.传递类的构造参数($bytes为数组)
$memoryStream = New-Object System.IO.MemoryStream @( , $btyes)
f.从另外的文件中加载类。
[System.Reflection.Assembly]::LoadWithPartialName("System.Web");
[Web.HttpUtility]::UrlEncode("http://search.msn.com");