您的位置:首页 > 运维架构 > Shell

PowerShell学习(二),筛选与输出格式

2014-03-14 14:32 295 查看
首先我们来了解下“命令管道”,那什么是命令管道,命令管道的符号是一个竖“|”,命令管道的意思是前一个命令的输出作为后一个命令的输入。不明白这句话,没有关系下面我们来通过一个例子说明下,你就马上明白了。

如下图,我的D盘有很多txt文件




我使用命令查看下,我输入dir查看到的txt文件和我们使用图像界面打开的是一样的




下面我想找到名称为a的txt文档,我们输入 dir | find “a” 如下图,我们dir把查找到的文件输出,然后交给find进行输入,然后就找了文本a




以上的例子就是命令管道。

比如现在我知道PowerShell有一个命令Get-Service,输入这个命令后显示当前计算机的服务,在这里我们注意到有3列,其中我们注意到有Name这样一列




但是我只希望看下Spooler,这个打印服务那么我们怎么办?那么我们就可以进行列名进行筛选,我们输入Get-Command –Name spool* ,如下图,我们就筛选出来spooler服务




但是你发现没有上面Get-Command –Name spool* 输出格式是列表的方式,这是默认方式,可是我希望它输出信息是否可以更加详细些,当然可以我们输入Get-Command –Name Spool* | fl ,fl是什么? fl 就是 Format-List的缩写,fl就是让命令输入信息更加详细




以上,我们就是使用列名进行了筛选,当然不是所有的列名都是可以进行筛选,但是如果列名可以筛选我们可以优先考虑。

假设列名无法进行筛选,那么我们可以使用Where Object,比如我们现在在Poweshell中输入Get-Process,那么将显示当前计算机的进程,我们注意到有个4700的进行是explorer




假设我想筛选进程ID是4700,那么我们就可以输入Get-Process | Where-Object {$_.id -eq 4700},Get-Process获取进程,然后使用命令管道 ,然后使用Where-Object {$_.id -eq 4700},$_. 是引用对象的语法,eq是精确查询,我们还可以使用参数-like(表示模糊查询)















菜鸟学习PowerShell,我把PPT传下,需要可以进行下载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: