浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]PowerShell是构建在.NET框架之上的,所有的内在信息都是遵从.NET对象的格式,将信息和相

欢迎大家来到IT世界,在知识的湖畔探索吧!

PowerShell是构建在.NET框架之上的,所有的内在信息都是遵从.NET对象的格式,将信息和相关的函数封装。管道传递的信息就是对象,本文为大家介绍变量和对象的基础使用方法,纯小白教程,让你五分钟掌握变量与对象的简单使用。

1.使用变量存储信息

使用变量可以把一个管道或命令的输出保存下来后续使用,PowerShell中的变量用$符号作为开始,几乎可以使用任意字符作为变量的名称:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

Note:如果保存了大量的数据到一个变量中,以后不用了,则需要给变量赋值$null,用以释放内存空间。

变量名字也可以带特殊字符,但是使用时需要加上{},如下:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

2.使用环境变量

PowerShell提供了如下几种方法来访问环境变量(如获取系统路径或当前用户名称)

  • 获取所有环境变量:Get-ChildItem env:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

  • 获取某一个变量:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

3.定义变量的作用域

有时候需要控制变量的可用范围,为了在指定的范围内创建变量,在变量的名称前面需要提供SCOPE关键字,访问指定范围内的变量,在变量的前面提供范围:

定义:$SCOPE:variable = value

访问:$SCOPE:variable

一共有三个可用的SCOPE关键字:

  • Global:全局范围,在此范围内的变量对其他范围来说都是可见的;

  • Script:代表当前脚本范围,此范围内的变量对于其他脚本内的范围都是可见的;

  • Local:当前范围

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

4.使用.NET对象

如何使用PowerShell提供的内在支持的、功能强大的.NET对象。

  • 调用一个类的静态方法:[ClassName]::MethodName(parameter list)

  • 调用一个对象的普通方法:$object.MethodName(parameter list)

  • 访问一个类的静态属性:[ClassName]::PropertyName

  • 访问一个对象的普通属性:$object.PropertyName

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

5.创建一个.NET对象实例

使用New-Object命令来创建一个对象的实例:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

默认情况下,PowerShell只会加载最常用的类型。当然,还有一些类需要你加载对应的类库文件后才可用。

为了加载一个类库,使用System.Reflection.Assembly类提供的方法来加载:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

Note:LoadWithPartialName方法不适合在脚本或产品发布时使用,原因是它默认加载最新版本的库文件,安全的方法是使用[Reflection.Assembly]::Load()加上完整的名称来加载。

6.快速输入较长的类名

当在脚本文件中使用具有较长命名的类的时候,可以把类名保存到一个变量中,方便下次使用:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

可以使用-f操作符,格式化命名空间字符串:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

查看两个变量的类型如下:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

7.查找如何使用类型和对象

如果知道一个类型,可以使用MSDN去查找,或者使用Get-Member命令查找使用方法:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

如果只有对象,可以使用GetType()方法获取类型,后再用上述方法查找使用方法,或者直接Get-Member:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

8.向对象添加自定义方法和属性

可以通过Add-Member命令向对象添加自定义的成员:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

可以使用Get-Help Add-Member查询更详细的使用方法。

9.向类添加自定义方法和属性

可以使用自定义的类型扩展文件(custom type extension files),向一个类中的所有对象添加成员。

比如我要给所有的DateTime类型添加一个脚本属性IsLeapYear,来表示这个DateTime的年是否是闰年,操作步骤如下:

  • 在PowerShell默认根目录下创建一个空的类扩展文件”Types.Bob.ps1xml”;

  • 在里面添加如下代码:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

  • 在PowerShell根目录下执行如下命令:

PS C:\Windows\System32\WindowsPowerShell\v1.0> $typeFile = (Join-Path $pshome “Types.Bob.ps1xml”)

PS C:\Windows\System32\WindowsPowerShell\v1.0> Update-TypeData -PrependPath $typeFile

  • 最后就可以获取IsLeapYearDay属性了:

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

浅谈变量与对象,PowerShell小白5分钟教程[通俗易懂]

[本人原创文章,仅供学习研究之用,如有错误请留言,如觉得不错请推荐分享,谢谢支持]

[更详细的内容请参考:本人博客园——薰薰熊的技术分享社区 by 永远薰薰]

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/18300.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信