校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > Windows Powershell調(diào)用靜態(tài)方法

Windows Powershell調(diào)用靜態(tài)方法

熱門(mén)標(biāo)簽:如何根據(jù)經(jīng)緯度百度地圖標(biāo)注 莫拉克電梯系統(tǒng)外呼怎么設(shè)置 萬(wàn)全縣地圖標(biāo)注app 印臺(tái)區(qū)呼叫中心外呼系統(tǒng) 騰訊地圖標(biāo)注中心怎么標(biāo)注 六寸地圖標(biāo)注點(diǎn)怎么刪除 電話(huà)機(jī)器人公司招聘 地圖標(biāo)注的圖案 新鄭電銷(xiāo)機(jī)器人一個(gè)月多少錢(qián)

Powershell將信息存儲(chǔ)在對(duì)象中,每個(gè)對(duì)象都會(huì)有一個(gè)具體的類(lèi)型,簡(jiǎn)單的文本會(huì)以System.String類(lèi)型存儲(chǔ),日期會(huì)以System.DateTime類(lèi)型存儲(chǔ)。任何.NET對(duì)象都可以通過(guò)GetType()方法返回它的類(lèi)型,該類(lèi)型中有一個(gè)FullName屬性,可以查看類(lèi)型的完整名稱(chēng)。

復(fù)制代碼 代碼如下:

PS C:Powershell> $date=get-date
PS C:Powershell> $date

2012年1月11日 15:19:49

PS C:Powershell> $date.GetType().FullName
System.DateTime

每一個(gè)類(lèi)型都 可以包含一些靜態(tài)的方法,可以通過(guò)方括號(hào)和類(lèi)型名稱(chēng)得到類(lèi)型對(duì)象本身,然后通過(guò)Get-Memeber命令查看該類(lèi)型支持的所有靜態(tài)方法。

復(fù)制代碼 代碼如下:

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類(lèi)支持的靜態(tài)方法非常實(shí)用
使用Parse方法將一個(gè)字符串轉(zhuǎn)換成DateTime類(lèi):

復(fù)制代碼 代碼如下:

PS C:Powershell> [System.DateTime]::Parse("2012-10-13 23:42:55")

2012年10月13日 23:42:55

使用isLeapYear方法判斷閏年

復(fù)制代碼 代碼如下:

#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


另一個(gè)常用的類(lèi)為Math類(lèi),在Math類(lèi)中定義了很多實(shí)用的靜態(tài)方法:
例如求絕對(duì)值,三角函數(shù),取整:
復(fù)制代碼 代碼如下:

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類(lèi)型

.NET支持成千上萬(wàn)的類(lèi)型,有了這些類(lèi)型可以做許多事情,幸運(yùn)的是Powershell恰好支持這些類(lèi)型。

對(duì)象類(lèi)型轉(zhuǎn)換

例如使用System.Net.IPAddress類(lèi)將字符串IP地址轉(zhuǎn)換成一個(gè)IPAddress實(shí)例

復(fù)制代碼 代碼如下:

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

調(diào)用靜態(tài)的方法

同樣是System.Net.IPAddress類(lèi),根據(jù)IP地址查看主機(jī)名,8.8.8.8是谷歌的免費(fèi)DNS服務(wù)器

復(fù)制代碼 代碼如下:

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}

根據(jù)類(lèi)型創(chuàng)建實(shí)例

下面演示通過(guò)$webClient類(lèi)的DownloadFile方法下載文件:

復(fù)制代碼 代碼如下:

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中的類(lèi)型定義在不同的程序集中,首先得知道當(dāng)前程序已經(jīng)加載了那些程序集。AppDomain類(lèi)可以完成這個(gè)需求,因?yàn)樗幸粋€(gè)靜態(tài)成員CurrentDomain,CurrentDomain中有一個(gè)GetAssemblies()方法。

復(fù)制代碼 代碼如下:

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...

搜索指定類(lèi)型

查詢(xún)每個(gè)程序集中的方法可是使用GetExportedTypes() 方法。因?yàn)樵S多程序集中包含了大量的方法,在搜索時(shí)最好指定關(guān)鍵字。下面的代碼演示如何查找包含”environment”關(guān)鍵字的類(lèi)型。

復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

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中的屬性輸出當(dāng)前登錄域、用戶(hù)名、機(jī)器名:

復(fù)制代碼 代碼如下:

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

搜索方法

下面的例子演示如何根據(jù)指定關(guān)鍵字”Address”,搜索方法。

復(fù)制代碼 代碼如下:

[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 -->


您可能感興趣的文章:
  • Windows Powershell方法(對(duì)象能做什么)
  • Windows Powershell屬性:描述對(duì)象是什么
  • Windows Powershell對(duì)象=屬性+方法
  • Windows Powershell創(chuàng)建對(duì)象

標(biāo)簽:汕頭 南昌 湘潭 疫苗接種 天水 喀什 襄陽(yáng) 臨汾

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Windows Powershell調(diào)用靜態(tài)方法》,本文關(guān)鍵詞  Windows,Powershell,調(diào)用,靜態(tài),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Windows Powershell調(diào)用靜態(tài)方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Windows Powershell調(diào)用靜態(tài)方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 扎赉特旗| 福州市| 梅河口市| 南陵县| 永昌县| 西乡县| 泌阳县| 华蓥市| 溧阳市| 当涂县| 麦盖提县| 德钦县| 弋阳县| 沁阳市| 晋州市| 三门峡市| 奉节县| 昌邑市| 安多县| 临猗县| 广灵县| 神池县| 新余市| 新昌县| 莎车县| 嘉禾县| 万年县| 定边县| 来宾市| 龙海市| 探索| 建平县| 罗田县| 普兰县| 潞城市| 凤山县| 宁河县| 松桃| 伊金霍洛旗| 东城区| 宣威市|