-
在Powershell中加载这个dll并使用其中的Student类的构造函数生成一个实例,最后调用ToString()方法。 PS C:Powershell> ls .Test.dll 目录: C:Powershell Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2012/1/13 10:49 4608 Test.dll PS C:Powershell> $TestDLL=ls .Test.dll PS C:Powershell> [reflection.assembly]::LoadFile($TestDLL.FullName) GAC Version Location --- ------- -------- False v2.0.50727 C:PowershellTest.dll PS C:Powershell> $stu=New-Object Test.Student('Mosser',22) PS C:Powershell> $stu Name Age ---- --- Mosser 22 PS C:Powershell> $stu.ToString() Name=Mosser;Age=22查看全部
-
加载程序集 自定义一个简单的C#类库编译为Test.dll: using System; using System.Collections.Generic; using System.Text; using System.Net; namespace Test { public class Student { public string Name { set; get; } public int Age { set; get; } public Student(string name, int age) { this.Name = name; this.Age = age; } public override string ToString() { return string.Format("Name={0};Age={1}", this.Name,this.Age); } } }查看全部
-
如果条件允许,也可以直接将对象转换成数组 PS C:Powershell> [char[]]"mossfly.com" m o s s f l y . c o m PS C:Powershell> [int[]][char[]]"mossfly.com" 109 111 115 115 102 108 121 46 99 111 109查看全部
-
通过类型转换创建对象 通过类型转换可以替代New-Object PS C:Powershell> $date="1999-9-1 10:23:44" PS C:Powershell> $date.GetType().fullName System.String PS C:Powershell> $date 1999-9-1 10:23:44 PS C:Powershell> [DateTime]$date="1999-9-1 10:23:44" PS C:Powershell> $date.GetType().FullName System.DateTime PS C:Powershell> $date 1999年9月1日 10:23:44查看全部
-
通过New-Object创建新对象 如果使用构造函数创建一个指定类型的实例对象,该类型必须至少包含一个签名相匹配的构造函数。例如可以通过字符和数字创建一个包含指定个数字符的字符串: PS C:Powershell> New-Object String(‘*’,100) ******************************************************************************* ********************* 为什么支持上面的方法,原因是String类中包含一个Void .ctor(Char, Int32) 构造函数 PS C:Powershell> [String].GetConstructors() | foreach {$_.tostring()} Void .ctor(Char*) Void .ctor(Char*, Int32, Int32) Void .ctor(SByte*) Void .ctor(SByte*, Int32, Int32) Void .ctor(SByte*, Int32, Int32, System.Text.Encoding) Void .ctor(Char[], Int32, Int32) Void .ctor(Char[]) Void .ctor(Char, Int32)查看全部
-
搜索指定类型 查询每个程序集中的方法可是使用GetExportedTypes() 方法。因为许多程序集中包含了大量的方法,在搜索时最好指定关键字。下面的代码演示如何查找包含”environment”关键字的类型。 PS C:Powershell> [AppDomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.GetExportedTypes() } | Where-Object { $_ -like $searchtext } | ForEach-Object { $_.FullName } System.EnvironmentVariableTarget System.Environment System.Environment+SpecialFolder System.Runtime.InteropServices.RuntimeEnvironment System.Security.Permissions.EnvironmentPermissionAccess System.Security.Permissions.EnvironmentPermission查看全部
-
调用静态的方法 同样是System.Net.IPAddress类,根据IP地址查看主机名,8.8.8.8是谷歌的免费DNS服务器 PS C:Powershell> [system.Net.Dns]::GetHostByAddress('8.8.8.8') | fl HostName : google-public-dns-a.google.com Aliases : {} AddressList : {8.8.8.8} 根据类型创建实例 下面演示通过$webClient类的DownloadFile方法下载文件: PS C:Powershell> $localName="C:Powershellindex.php" PS C:Powershell> Test-Path $localName False PS C:Powershell> $add="http://www.mossfly.com/index.php" PS C:Powershell> $webClient=New-Object Net.WebClient PS C:Powershell> $webClient.DownloadFile($add,$localName) PS C:Powershell> Test-Path $localName True查看全部
-
查看感兴趣的.NET类型 .NET支持成千上万的类型,有了这些类型可以做许多事情,幸运的是Powershell恰好支持这些类型。 对象类型转换 例如使用System.Net.IPAddress类将字符串IP地址转换成一个IPAddress实例 PS C:Powershell> [Net.IPAddress]'10.3.129.71' Address : 1199637258 AddressFamily : InterNetwork ScopeId : IsIPv6Multicast : False IsIPv6LinkLocal : False IsIPv6SiteLocal : False IPAddressToString : 10.3.129.71查看全部
-
另一个常用的类为Math类,在Math类中定义了很多实用的静态方法: 例如求绝对值,三角函数,取整: PS C:Powershell> [Math]::Abs(-10.89) 10.89 PS C:Powershell> [Math]::Sin([Math]::PI/2) 1 PS C:Powershell> [Math]::Truncate(2012.7765) 2012查看全部
-
System.DateTime类支持的静态方法非常实用 使用Parse方法将一个字符串转换成DateTime类: PS C:Powershell> [System.DateTime]::Parse("2012-10-13 23:42:55") 2012年10月13日 23:42:55 使用isLeapYear方法判断闰年 #1988年是闰年吗? [System.DateTime]::IsLeapYear(1988) #打印1988到2000年的所有闰年 for($year=1988;$year -le 2000;$year++) { if( [System.DateTime]::IsLeapYear($year) ){$year} } True 1988 1992 1996 2000查看全部
-
每一个类型都 可以包含一些静态的方法,可以通过方括号和类型名称得到类型对象本身,然后通过Get-Memeber命令查看该类型支持的所有静态方法。 PS C:Powershell> [System.DateTime] | Get-Member -static -memberType *Method TypeName: System.DateTime Name MemberType Definition ---- ---------- ---------- Compare Method static int Compare(System.DateTime t1, System.Dat... DaysInMonth Method static int DaysInMonth(int year, int month) Equals Method static bool Equals(System.DateTime t1, System.Dat... FromBinary Method static System.DateTime FromBinary(long dateData) FromFileTime Method static System.DateTime FromFileTime(long fileTime) FromFileTimeUtc Method static System.DateTime FromFileTimeUtc(long fileT... FromOADate Method static System.DateTime FromOADate(double d)查看全部
-
Powershell将信息存储在对象中,每个对象都会有一个具体的类型,简单的文本会以System.String类型存储,日期会以System.DateTime类型存储。任何.NET对象都可以通过GetType()方法返回它的类型,该类型中有一个FullName属性,可以查看类型的完整名称。 PS C:Powershell> $date=get-date PS C:Powershell> $date 2012年1月11日 15:19:49 PS C:Powershell> $date.GetType().FullName System.DateTime 每一个类型都 可以包含一些静态的方法,可以通过方括号和类型名称得到类型对象本身,然后通过Get-Memeber命令查看该类型支持的所有静态方法。查看全部
-
不同的方法类型 类似于属性,Powershell对象也可以增加方法,方法类型包括: CodeMethod:映射到静态的.NET方法 Method:正常的方法 ScriptMethod:一个执行Powershell脚本的方法查看全部
-
MemberType包括: AliasProperty:另外一个属性的别名 CodeProperty:通过静态的.Net方法返回属性的内容 Property:真正的属性 NoteProperty:随后增加的属性 ScriptProperty:通过脚本执行返回一个属性的值 ParameterizedProperty:需要传递参数的属性查看全部
-
Powershell特殊属性 Powershell中 可以给一个对象增加属性,增加的属性仍然可以通过Get-Member的标签辨别,因为对象的正常属性标签名为:Property,新增加的属性标签多了一个前缀,如ScriptProperty和NoteProperty。 一个NoteProperty包含了静态的数据。一个ScriptProperty中包含了一段脚本,通过脚本计算出属性的值。 下面的例子新建一个对象$obj,给$obj增加两个属性一个为NoteProperty,一个为ScriptProperty,输出$obj ,CurrentTime属性会自动更新,AddTime则不会。 PS C:Powershell> $obj=New-Object PSobject PS C:Powershell> $obj | Add-Member -MemberType NoteProperty -Name AddTime -Value (get-date) PS C:Powershell> $obj | Add-Member -MemberType ScriptProperty -Name CurrentTime -Value {get-date} PS C:Powershell> $obj AddTime CurrentTime ------- ----------- 2012/1/11 14:35:38 2012/1/11 14:36:35 PS C:Powershell> $obj AddTime CurrentTime 2012/1/11 14:35:38 2012/1/11 14:36:44查看全部
举报
0/150
提交
取消