Power Shell 学习笔记(四)对象管道

来源:互联网 发布:淘宝店铺首页宝贝推荐 编辑:程序博客网 时间:2024/05/29 18:26

对象管道是ps的一个很方便的功能,使用对象的一个主要优点是,它使得用管道传输命令(即,将一个命令的输出作为输入传递到另一命令)容易得多。通信通常需要字符串操作,以便将输出从一种格式转换为另一种格式,并删除标题和列标题。当然我最喜欢的就是 xxxx|get-member 了,碰到不知道有什么方法能用的时候,这个管道(get-member)可以给你列出所有属性和方法,见名知意的猜一下好了。

Windows PowerShell 提供了一个基于对象而不是基于文本的新交互模型。接收对象的 cmdlet 可以直接作用于其属性和方法,而无需进行转换或操作。用户可以通过名称引用对象的属性和方法,而不是计算数据在输出中的位置。

下面来几个例子

例1:IpConfig 命令获取IPAddress信息。

image

上图是ipconfig的基本用法。

如果我不想要那么多信息,只想要本机IP怎么办呢?这时候可以用Findstr 来处理下。处理思想,首先获取到上面看到的所有信息,然后对每行信息进行Findstr 处理,如果包含“Address”,那么就是我要的内容。具体写法如下:

ipconfig | findstr "Address"

image

获取MAC地址呢?

image

最后给大家介绍下我最喜欢的一个用法 xxxx|get-member

当你拿到一个对象,然而你又不知道这个对象有哪些方法可用,想猜测一下到底能不能获取到什么信息,能不能实现某些功能的时候,xxxx|get-member最有用了。

例如,get-service可以获取到某个service的信息,可是我不知道怎么启动这个service怎么办。面向对象的思想吗~拿到对象再说!肯定很多人都会这样入手。可是当你拿到service对象以后,接下来怎么办?service对象都提供了哪些方法?get-member!如下

1. 获取MSDTC服务信息,通过format-list 方法输出所有属性信息,可以看到Status是Running的。

image

2. 我们想要把它关闭。可是不知道怎么处理,那我我们先来看一下他都提供了我们什么方法。

image

可以看到,get-member把所有的成员都给大家列出来了。OK,我们发现他有一个Method,叫做Stop。我想大多数人都能猜到干什么用的吧这个方法。

所以我来试验一下。

image

我们首先拿到msdtc的service对象,然后调用stop方法(方法,当然要加括号)。

然后输出了新的状态信息,你会发先status变成了stopped。我们成功的关闭了服务。很有用的方法啊。

对象管道当然还有好多用法,也有好多常用方法,不过等到用到再说吧。