亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PowerShell > 正文

Windows Powershell調用靜態方法

2020-03-26 19:16:04
字體:
來源:轉載
供稿:網友

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命令查看該類型支持的所有靜態方法。

 

復制代碼 代碼如下:

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)
IsLeapYear       Method     static bool IsLeapYear(int year)
Parse            Method     static System.DateTime Parse(string s), static Sy...
ParseExact       Method     static System.DateTime ParseExact(string s, strin...
ReferenceEquales Method     static bool ReferenceEquals(System.Object objA, S...
SpecifyKind      Method     static System.DateTime SpecifyKind(System.DateTim...
TryParse         Method     static bool TryParse(string s, System.DateTime&, ...
TryParseExact    Method     static bool TryParseExact(string s, string format...

 

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


另一個常用的類為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

查看感興趣的.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

 

調用靜態的方法

同樣是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中的類型定義在不同的程序集中,首先得知道當前程序已經加載了那些程序集。AppDomain類可以完成這個需求,因為它有一個靜態成員CurrentDomain,CurrentDomain中有一個GetAssemblies()方法。

 

復制代碼 代碼如下:

PS C:Powershell> [AppDomain]::CurrentDomain

 

FriendlyName           : DefaultDomain
Id                     : 1
ApplicationDescription :
BaseDirectory          : C:WINDOWSsystem32WindowsPowerShellv1.0
DynamicDirectory       :
RelativeSearchPath     :
SetupInformation       : System.AppDomainSetup
ShadowCopyFiles        : False

PS C:Powershell> [AppDomain]::CurrentDomain.GetAssemblies()

GAC    Version        Location
---    -------        --------
True   v2.0.50727     C:WindowsMicrosoft.NETFrameworkv2.0.50727mscorlib...
True   v2.0.50727     C:WindowsassemblyGAC_MSILMicrosoft.PowerShell.Cons...
True   v2.0.50727     C:WindowsassemblyGAC_MSILSystem2.0.0.0__b77a5c561...
True   v2.0.50727     C:WindowsassemblyGAC_MSILSystem.Management.Automat...
True   v2.0.50727     C:WindowsassemblyGAC_MSILMicrosoft.PowerShell.Comm...
True   v2.0.50727     C:WindowsassemblyGAC_MSILSystem.Core3.5.0.0__b77a...
True   v2.0.50727     C:WindowsassemblyGAC_MSILSystem.Configuration.Inst...
True   v2.0.50727     C:WindowsassemblyGAC_MSILMicrosoft.WSMan.Managemen...
True   v2.0.50727     C:WindowsassemblyGAC_32System.Transactions2.0.0.0...
True   v2.0.50727     C:WindowsassemblyGAC_MSILMicrosoft.PowerShell.Comm...
True   v2.0.50727     C:WindowsassemblyGAC_MSILMicrosoft.PowerShell.Comm...
True   v2.0.50727     C:WindowsassemblyGAC_MSILMicrosoft.PowerShell.Secu...
True   v2.0           C:WindowsassemblyGAC_MSILMicrosoft.PowerShell.Cons...
True   v2.0.50727     C:WindowsassemblyGAC_MSILSystem.Xml2.0.0.0__b77a5...
True   v2.0.50727     C:WindowsassemblyGAC_MSILSystem.Management2.0.0.0...
True   v2.0.50727     C:WindowsassemblyGAC_MSILSystem.DirectoryServices...
True   v2.0           C:WindowsassemblyGAC_MSILSystem.Management.Automat...
True   v2.0           C:WindowsassemblyGAC_MSILMicrosoft.WSMan.Managemen...
True   v2.0.50727     C:WindowsMicrosoft.NETFrameworkv2.0.50727mscorlib...
True   v2.0           C:WindowsassemblyGAC_MSILMicrosoft.PowerShell.Secu...
True   v2.0.50727     C:WindowsassemblyGAC_32System.Data2.0.0.0__b77a5c...
True   v2.0           C:WindowsassemblyGAC_MSILMicrosoft.PowerShell.Comm...
True   v2.0.50727     C:WindowsassemblyGAC_MSILSystem.Configuration2.0....
True   v2.0.50727     C:WindowsassemblyGAC_MSILMicrosoft.JScript8.0.0.0...

 

搜索指定類型

查詢每個程序集中的方法可是使用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.Security.Permissions.EnvironmentPermissionAttribute
Microsoft.PowerShell.Commands.EnvironmentProvider

 

上面搜索到的類型有一個為:System.Environment類,System.Environment類可以做很多事情,可以先查看以下System.Environment類的所有靜態方法。

 

復制代碼 代碼如下:

PS C:Powershell> [Environment] | Get-Member -Static

 

   TypeName: System.Environment

Name                        MemberType Definition
----                         ---------- ----------
Equals                       Method     static bool Equals(System.Object objA,
Exit                         Method     static System.Void Exit(int exitCode)
ExpandEnvironmentVariables Method     static string ExpandEnvironmentVariabl
FailFast                     Method     static System.Void FailFast(string mes
GetCommandLineArgs          Method     static string[] GetCommandLineArgs()
GetEnvironmentVariable      Method     static string GetEnvironmentVariable(s
GetEnvironmentVariables     Method     static System.Collections.IDictionary
GetFolderPath               Method     static string GetFolderPath(System.Env
GetLogicalDrives            Method     static string[] GetLogicalDrives()
ReferenceEquals             Method     static bool ReferenceEquals(System.Obj
SetEnvironmentVariable      Method     static System.Void SetEnvironmentVaria
CommandLine                 Property   static System.String CommandLine {get;
CurrentDirectory            Property   static System.String CurrentDirectory
ExitCode                    Property   static System.Int32 ExitCode {get;set;
HasShutdownStarted          Property   static System.Boolean HasShutdownStart
MachineName                 Property   static System.String MachineName {get;
NewLine                     Property   static System.String NewLine {get;}
OSVersion                   Property   static System.OperatingSystem OSVersio
ProcessorCount              Property   static System.Int32 ProcessorCount {ge
StackTrace                  Property   static System.String StackTrace {get;}
SystemDirectory             Property   static System.String SystemDirectory {
TickCount                   Property   static System.Int32 TickCount {get;}
UserDomainName              Property   static System.String UserDomainName {g
UserInteractive             Property   static System.Boolean UserInteractive
UserName                    Property   static System.String UserName {get;}
Version                      Property   static System.Version Version {get;}
WorkingSet                  Property   static System.Int64 WorkingSet {get;}

 

例如System.Environment中的屬性輸出當前登錄域、用戶名、機器名:

 

復制代碼 代碼如下:

PS C:Powershell> [Environment]::UserDomainName
MyHome
PS C:Powershell> [Environment]::UserName
xiaoming
PS C:Powershell> [Environment]::MachineName
LocalHost

 

搜索方法

下面的例子演示如何根據指定關鍵字”Address”,搜索方法。

 

復制代碼 代碼如下:

[AppDomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.GetExportedTypes() } | ForEach-Object { $_.getmembers() } | Where-Object { $_.isStatic} | Where-Object { $_ -like $searchtext } | ForEach-Object { "[{0}]::{1} --> {2}" -f  $_.declaringtype, $_.toString().SubString($_.toString().IndexOf(" ")+1), $_.ReturnType }

 

[System.Net.IPAddress]::Parse(System.String) --> System.Net.IPAddress
[System.Net.IPAddress]::IsLoopback(System.Net.IPAddress) --> System.Boolean
[System.Net.IPAddress]::Any -->
[System.Net.IPAddress]::Loopback -->
[System.Net.IPAddress]::Broadcast -->
[System.Net.IPAddress]::None -->
[System.Net.IPAddress]::IPv6Any -->
[System.Net.IPAddress]::IPv6Loopback -->
[System.Net.IPAddress]::IPv6None -->
[System.Net.Sockets.AddressFamily]::Unknown -->
[System.Net.Sockets.AddressFamily]::Unspecified -->
[System.Net.Sockets.AddressFamily]::Unix -->
[System.Net.Sockets.AddressFamily]::InterNetwork -->
[System.Net.Sockets.AddressFamily]::ImpLink -->
[System.Net.Sockets.AddressFamily]::Pup -->
[System.Net.Sockets.AddressFamily]::Chaos -->
[System.Net.Sockets.AddressFamily]::NS -->
[System.Net.Sockets.AddressFamily]::Ipx -->
[System.Net.Sockets.AddressFamily]::Iso -->
[System.Net.Sockets.AddressFamily]::Osi -->
[System.Net.Sockets.AddressFamily]::Ecma -->
[System.Net.Sockets.AddressFamily]::DataKit -->
[System.Net.Sockets.AddressFamily]::Ccitt -->
[System.Net.Sockets.AddressFamily]::Sna -->
[System.Net.Sockets.AddressFamily]::DecNet -->
[System.Net.Sockets.AddressFamily]::DataLink -->
[System.Net.Sockets.AddressFamily]::Lat -->
[System.Net.Sockets.AddressFamily]::HyperChannel -->
[System.Net.Sockets.AddressFamily]::AppleTalk -->
[System.Net.Sockets.AddressFamily]::NetBios -->
[System.Net.Sockets.AddressFamily]::VoiceView -->
[System.Net.Sockets.AddressFamily]::FireFox -->
[System.Net.Sockets.AddressFamily]::Banyan -->
[System.Net.Sockets.AddressFamily]::Atm -->
[System.Net.Sockets.AddressFamily]::InterNetworkV6 -->
[System.Net.Sockets.AddressFamily]::Cluster -->
[System.Net.Sockets.AddressFamily]::Ieee12844 -->
[System.Net.Sockets.AddressFamily]::Irda -->
[System.Net.Sockets.AddressFamily]::NetworkDesigners -->
[System.Net.Sockets.AddressFamily]::Max -->
[System.Net.Sockets.IOControlCode]::GetBroadcastAddress -->
[System.Net.Sockets.IOControlCode]::AddressListQuery -->
[System.Net.Sockets.IOControlCode]::AddressListChange -->
[System.Net.Sockets.IOControlCode]::AddressListSort -->
[System.Net.Sockets.SocketError]::DestinationAddressRequired -->
[System.Net.Sockets.SocketError]::AddressFamilyNotSupported -->
[System.Net.Sockets.SocketError]::AddressAlreadyInUse -->
[System.Net.Sockets.SocketError]::AddressNotAvailable -->
[System.Net.Sockets.SocketOptionName]::ReuseAddress -->
[System.Net.Sockets.SocketOptionName]::ExclusiveAddressUse -->
[System.Net.NetworkInformation.DuplicateAddressDetectionState]::Invalid -->
[System.Net.NetworkInformation.DuplicateAddressDetectionState]::Tentative -->
[System.Net.NetworkInformation.DuplicateAddressDetectionState]::Duplicate -->
[System.Net.NetworkInformation.DuplicateAddressDetectionState]::Deprecated -->
[System.Net.NetworkInformation.DuplicateAddressDetectionState]::Preferred -->
[System.Net.NetworkInformation.NetworkChange]::add_NetworkAddressChanged(System
.Net.NetworkInformation.NetworkAddressChangedEventHandler) --> System.Void
[System.Net.NetworkInformation.NetworkChange]::remove_NetworkAddressChanged(Sys
tem.Net.NetworkInformation.NetworkAddressChangedEventHandler) --> System.Void
[System.Net.NetworkInformation.PhysicalAddress]::Parse(System.String) --> Syste
m.Net.NetworkInformation.PhysicalAddress
[System.Net.NetworkInformation.PhysicalAddress]::None -->
[System.Net.NetworkInformation.SuffixOrigin]::LinkLayerAddress -->
[System.DirectoryServices.ActiveDirectory.ActiveDirectorySyntax]::PresentationA
ddress -->
[Microsoft.JScript.JSError]::DoesNotHaveAnAddress -->
[Microsoft.JScript.JSError]::WrongUseOfAddressOf -->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产一区二区在线| 亚洲影影院av| 国产午夜精品免费一区二区三区| 欧美尺度大的性做爰视频| 亚洲深夜福利在线| 国产精品丝袜久久久久久高清| 日韩一区二区福利| 亚洲网在线观看| 亚洲国产精品久久久久久| 伦理中文字幕亚洲| 色综合伊人色综合网| 中文字幕一区日韩电影| 亚洲欧美在线x视频| 国产午夜精品视频免费不卡69堂| 亚洲精品一区二区三区婷婷月| 按摩亚洲人久久| 欧美精品在线免费| 亚洲欧美国产日韩天堂区| 亚洲成人999| 亚洲精品福利视频| 亚洲成人xxx| 久久综合电影一区| 国产精品久久久久久久久久三级| 日韩精品视频在线观看免费| 中日韩午夜理伦电影免费| 国产综合在线看| 好吊成人免视频| 亚洲激情小视频| 国产精品电影网| 97国产真实伦对白精彩视频8| 97超级碰在线看视频免费在线看| 国产精品第一视频| 国产精自产拍久久久久久| 91精品国产乱码久久久久久久久| 日韩精品免费综合视频在线播放| 中文字幕av一区| 91九色国产在线| 热re91久久精品国99热蜜臀| 欧美亚洲在线视频| 精品香蕉一区二区三区| 亚洲综合精品伊人久久| 久久久亚洲成人| 亚洲va欧美va国产综合剧情| 色综合影院在线| 国产v综合v亚洲欧美久久| 国产精品久久久久久网站| 在线观看视频99| 中文字幕欧美日韩精品| 精品久久久久国产| 亚洲欧美日韩天堂一区二区| 在线观看不卡av| 欧美激情xxxxx| 国产精品日韩一区| 欧美午夜精品久久久久久久| 久青草国产97香蕉在线视频| 欧美肥臀大乳一区二区免费视频| 国产精品精品一区二区三区午夜版| 91成人性视频| 久久久999精品免费| 久久久久久97| 成人妇女淫片aaaa视频| 亚洲aaaaaa| 91久久久久久国产精品| 久久男人的天堂| 国产一区二区三区丝袜| 亚洲国产欧美一区| 久久久精品一区| 久久免费国产精品1| 亚洲激情中文字幕| 欧美日韩中文字幕日韩欧美| 69视频在线免费观看| 欧美中文字幕在线播放| 日韩精品在线观| 这里只有视频精品| 久久久国产视频| 蜜臀久久99精品久久久无需会员| 日韩欧美主播在线| 亚洲国产日韩欧美在线动漫| 国产又爽又黄的激情精品视频| 国产精品久久久久久久app| 欧美精品一区三区| 国产精品美女久久久久久免费| 美女撒尿一区二区三区| 18性欧美xxxⅹ性满足| 啊v视频在线一区二区三区| 国产精品旅馆在线| 久久视频在线观看免费| 色系列之999| 中文字幕精品一区二区精品| 亚洲免费视频一区二区| 亚洲精品久久久久久久久久久| 国产精品日韩在线| 中文字幕成人在线| 免费99精品国产自在在线| 亚洲一区二区国产| 欧美电影免费观看高清| 日韩欧美a级成人黄色| 欧美激情视频在线观看| 亚洲人成毛片在线播放| 久久久精品电影| 久久久久久久久久久免费| 亚洲图片欧美午夜| 久久精品久久久久电影| 亚洲视频精品在线| 成人女保姆的销魂服务| 国产精品入口福利| 国产精品福利无圣光在线一区| 91禁国产网站| 国产精品99久久久久久久久| 国产精品久久久久久网站| 精品成人国产在线观看男人呻吟| 九九热r在线视频精品| 久久免费成人精品视频| 久久成人精品视频| 黑人与娇小精品av专区| 国产精品国产三级国产aⅴ9色| 日韩69视频在线观看| 欧美日韩成人网| 美女黄色丝袜一区| 欧美另类69精品久久久久9999| 在线视频日韩精品| 精品无人区乱码1区2区3区在线| 国产噜噜噜噜久久久久久久久| 97国产精品免费视频| 国产精品视频久久久久| www.美女亚洲精品| 91精品国产综合久久香蕉922| 亚洲免费影视第一页| 国产精品露脸自拍| 日韩一二三在线视频播| 欲色天天网综合久久| 国产精品亚洲精品| 欧美日韩在线免费| 国产精品白丝jk喷水视频一区| 日本高清不卡在线| 国产婷婷色综合av蜜臀av| 精品无人国产偷自产在线| 欧美激情精品久久久久久免费印度| 精品国偷自产在线| 国产精品小说在线| 国产美女高潮久久白浆| 成人福利免费观看| 米奇精品一区二区三区在线观看| 日韩精品视频在线观看免费| 亚洲一区二区福利| 国产精品专区一| 国产香蕉97碰碰久久人人| 欧美精品在线观看| 欧美高清视频在线播放| 九九综合九九综合| 不用播放器成人网| www.欧美精品| 欧美老少配视频| 国产精品入口日韩视频大尺度| 亚洲精品日韩丝袜精品| 91亚洲一区精品| 亚洲一区美女视频在线观看免费| 精品亚洲一区二区三区在线播放| 欧美黄色片免费观看| 久久久久久美女| 日韩精品高清在线观看| 亚洲成人久久久久| 77777少妇光屁股久久一区| 久久国产精品久久久久久久久久|