PowerShell-第2章 管道

2.1 过滤列表项或命令输出项

  列出所有正在运行进程名称中包含"search"的进程,对进程名字属性使用-like操作符来比较进程的Name属性

    Get-Process | Where-Object {$_.Name -like "*search*"}

  列出当前位置的所有子目录,使用PsIsContainer属性

    Get-ChildItem | Where-Object { $_.PsIsContainer}

  列出所有已经停止的服务,对服务的Status属性使用操作符-eq

    Get-Service | Where-Object {$_.Status -eq "Stopped"}

  对于输入的每一项,Where-Object会根据定义的脚本块对输入进行估算,脚本块返回真,就输出,否则,不输出。

  一个脚本块是指用{}括起来的一系列PowerShell命令,在脚本块中可以输入任意PowerShell命令,$_代表当前输入的对象,

  对于输入对象中的每一项,PowerShell将它指派给$_变量,然后运行脚本。

2.4 处理列表或命令输出的每一项

  使用Foreach-Object处理列表中的每一项

    1..10 | Foreach-Object {$_ * 2}

    1..10是PowerShell生成数组的语法。

    

  处理目录中的文件,在脚本块中使用$_变量作为参数

    Get-ChildItem *.txt | Foreach-Object {attrib -r $_}

  获得正在运行的记事本程序的进程列表,然后等待它们退出

    $notepadProcess = Get-Process notepad++

    $notepadProcess | Foreach-Object {$_.WaitForExit()}

    会一直等待notepad++退出,如果没有退出,一直监控,一旦退出,此条命令结束。

 

posted @ 2015-08-10 11:07  lucky_zhang  阅读(372)  评论(0编辑  收藏  举报