欢迎大家来到IT世界,在知识的湖畔探索吧!
PowerShell是构建在.NET框架之上的,所有的内在信息都是遵从.NET对象的格式,将信息和相关的函数封装。管道传递的信息就是对象,本文为大家介绍变量和对象的基础使用方法,纯小白教程,让你五分钟掌握变量与对象的简单使用。
1.使用变量存储信息
使用变量可以把一个管道或命令的输出保存下来后续使用,PowerShell中的变量用$符号作为开始,几乎可以使用任意字符作为变量的名称:
Note:如果保存了大量的数据到一个变量中,以后不用了,则需要给变量赋值$null,用以释放内存空间。
变量名字也可以带特殊字符,但是使用时需要加上{},如下:
2.使用环境变量
PowerShell提供了如下几种方法来访问环境变量(如获取系统路径或当前用户名称)
-
获取所有环境变量:Get-ChildItem env:
-
获取某一个变量:
3.定义变量的作用域
有时候需要控制变量的可用范围,为了在指定的范围内创建变量,在变量的名称前面需要提供SCOPE关键字,访问指定范围内的变量,在变量的前面提供范围:
定义:$SCOPE:variable = value
访问:$SCOPE:variable
一共有三个可用的SCOPE关键字:
-
Global:全局范围,在此范围内的变量对其他范围来说都是可见的;
-
Script:代表当前脚本范围,此范围内的变量对于其他脚本内的范围都是可见的;
-
Local:当前范围
4.使用.NET对象
如何使用PowerShell提供的内在支持的、功能强大的.NET对象。
-
调用一个类的静态方法:[ClassName]::MethodName(parameter list)
-
调用一个对象的普通方法:$object.MethodName(parameter list)
-
访问一个类的静态属性:[ClassName]::PropertyName
-
访问一个对象的普通属性:$object.PropertyName
5.创建一个.NET对象实例
使用New-Object命令来创建一个对象的实例:
默认情况下,PowerShell只会加载最常用的类型。当然,还有一些类需要你加载对应的类库文件后才可用。
为了加载一个类库,使用System.Reflection.Assembly类提供的方法来加载:
Note:LoadWithPartialName方法不适合在脚本或产品发布时使用,原因是它默认加载最新版本的库文件,安全的方法是使用[Reflection.Assembly]::Load()加上完整的名称来加载。
6.快速输入较长的类名
当在脚本文件中使用具有较长命名的类的时候,可以把类名保存到一个变量中,方便下次使用:
可以使用-f操作符,格式化命名空间字符串:
查看两个变量的类型如下:
7.查找如何使用类型和对象
如果知道一个类型,可以使用MSDN去查找,或者使用Get-Member命令查找使用方法:
如果只有对象,可以使用GetType()方法获取类型,后再用上述方法查找使用方法,或者直接Get-Member:
8.向对象添加自定义方法和属性
可以通过Add-Member命令向对象添加自定义的成员:
可以使用Get-Help Add-Member查询更详细的使用方法。
9.向类添加自定义方法和属性
可以使用自定义的类型扩展文件(custom type extension files),向一个类中的所有对象添加成员。
比如我要给所有的DateTime类型添加一个脚本属性IsLeapYear,来表示这个DateTime的年是否是闰年,操作步骤如下:
-
在PowerShell默认根目录下创建一个空的类扩展文件”Types.Bob.ps1xml”;
-
在里面添加如下代码:
-
在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属性了:
[本人原创文章,仅供学习研究之用,如有错误请留言,如觉得不错请推荐分享,谢谢支持]
[更详细的内容请参考:本人博客园——薰薰熊的技术分享社区 by 永远薰薰]
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/18300.html