主題 about_Type_Operators 簡短描述 說明搭配 Microsoft .NET Framework 型別使用的運算子。 完整描述 從布林值型別運算子 (-is 或 -isnot) 可以看出物件是否為指定之 .NET Framework 型別的執行個體。如果型別相符,則 -is 運算子會傳回 TRUE 值,否則會傳回 FALSE 值。 如果型別相符,則 -isnot 運算子會傳回 FALSE 值,否則會傳回 TRUE 值。 -as 運算子會嘗試將輸入物件轉換成指定的 .NET Framework 型別。如果成功,則會 傳回轉換的物件。如果失敗,不會傳回任何結果,也不會傳回錯誤。 下表列出 Windows PowerShell 中的型別運算子。 運算子 描述 範例 -------- ------------------------ ---------------------------------------- -is 當輸入為指定之 .NET Framework C:\PS> (get-date) -is [datetime] True 型別的執行個體時,會傳回 TRUE。 -isnot 當輸入不是指定之 .NETFramework C:\PS> (get-date) -isnot [datetime] False 型別的執行個體時,會傳回 TRUE。 -as 將輸入轉換成指定的 .NET C:\PS> 12/31/07 -as Framework 型別。 [datetime] Monday, December 31, 2007 12:00:00 AM 型別運算子的語法如下: <輸入> <運算子> [.NET 型別] 您也可以使用下列語法: <輸入> <運算子> ".NET 型別" 若要指定 .NET Framework 型別,請以方括號 ([ ]) 括住型別名稱,或是輸入型別做 為字串,例如 [DateTime] 或 "datetime" 表示 System.DateTime。如果型別不在 系統命名空間的根目錄中,請指定物件類型的完整名稱。您可以省略 "System."。例如, 若 要指定 System.Diagnostics.Process,請輸入 [System.Diagnostics.Process]、 [Diagnostics.Process] 或 "diagnostics.process"。 即使輸入是物件集合,型別運算子仍一律會傳回布林值。不過,當輸入是集合時,型別運 算子會符合集合的 .NET Framework 型別。即使所有物件都屬於同一型別,型別運算子 仍不會符合每一個物件的型別。 若要尋找物件的 .NET Framework 型別,請使用 Get-Member Cmdlet。或者,將所 有物件的 GetType 方法與此方法的 FullName 屬性搭配使用。例如,下列陳述式會取 得 Get-Culture 命令傳回值的型別: C:\PS> (get-culture).gettype().fullname System.Globalization.CultureInfo 範例 下列範例會示範 Type 運算子的一些用法: C:\PS> 32 -is [Float] False C:\PS> 32 -is "int" True C:\PS> (get-date) -is [DateTime] True C:\PS> "12/31/2007" -is [DateTime] False C:\PS> "12/31/2007" -is [String] True C:\PS> (get-process powershell)[0] -is [System.Diagnostics.Process] True C:\PS> (get-command get-member) -is [System.Management.Automation.CmdletInfo] True 下列範例會示範當輸入是物件集合時,相符型別為集合的 .NET Framework 型別,而不 是集合中個別物件的型別。 在此範例中,雖然 Get-Culture 和 Get-UICulture Cmdlet 都傳回 System.Globalization.CultureInfo 物件,但是這些物件的集合是 System.Object 陣列。 C:\PS> (get-culture) -is [System.Globalization.CultureInfo] True C:\PS> (get-uiculture) -is [System.Globalization.CultureInfo] True C:\PS> (get-culture), (get-uiculture) -is [System.Globalization.CultureInfo] False C:\PS> (get-culture), (get-uiculture) -is [Array] True C:\PS> (get-culture), (get-uiculture) | foreach {$_ -is [System.Globalization.CultureInfo]) True True C:\PS> (get-culture), (get-uiculture) -is [Object] True 下列範例會示範如何使用 -as 運算子。 C:\PS> "12/31/07" -is [datetime] False C:\PS> "12/31/07" -as [datetime] Monday, December 31, 2007 12:00:00 AM C:\PS> $date = "12/31/07" -as [datetime] C:\PS>$a -is [datetime] True C:\PS> 1028 -as [System.Globalization.CultureInfo] LCID 名稱 DisplayName ---- ---- ----------- 1028 zh-TW 中文 (台灣) 下列範例會示範,當 -as 運算子無法將輸入物件轉換成 .NET Framework 型別時,不 會傳回任何結果。 C:\PS> 1028 -as [System.Diagnostic.Process] C:\PS> 請參閱 about_Operators