Get-Host
取得代表目前主控程式的物件。此外,預設也會顯示 Windows PowerShell 版本和地區資訊。
語法
Get-Host [<CommonParameters>]
描述
Get-Host Cmdlet 會取得代表主控 Windows PowerShell 之程式的物件。
預設的顯示包含主控程式所使用的 Windows PowerShell 版本號碼及目前的地區和語言設定,但主物件則包含大量的資訊,其中包括目前正在執行的 Windows PowerShell 版本以及 Windows PowerShell 的目前文化特性和 UI 文化特性等詳細資訊。您也可以使用此 Cmdlet 自訂主控程式使用者介面的外觀,例如文字和背景色彩。
參數
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
無 您無法經由管道將輸入輸出至這個 Cmdlet。 |
輸出 |
System.Management.Automation.Internal.Host.InternalHost Get-Host 會傳回 System.Management.Automation.Internal.Host.InternalHost 物件。 |
附註
$host 自動變數包含的物件與 Get-Host 傳回的物件相同,因此您可以用相同方式來處理。同樣地,$PSCulture 和 $PSUICulture 自動變數包含的與主控物件的 CurrentCulture 和 CurrentUICulture 屬性包含的也是同一個物件,因此這些功能可以交換使用。
如需詳細資訊,請參閱 about_Automatic_Variables。
範例 1
C:\PS>get-host
Name : ConsoleHost
Version : 2.0
InstanceId : e4e0ab54-cc5e-4261-9117-4081f20ce7a2
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
描述
-----------
這個命令會顯示 Windows PowerShell 主控台 (為本例中 Windows PowerShell 目前的主控程式) 的相關資訊,包括主控程式的名稱、執行在主控程式中的 Windows PowerShell 版本,以及目前的文化特性和 UI 文化特性。
Version、UI、CurrentCulture、CurrentUICulture、PrivateData 和 Runspace 屬性各包含有著非常實用屬性的物件。稍後的範例會檢查這些屬性。
範例 2
C:\PS>$h = get-host
C:\PS> $win = $h.ui.rawui.windowsize
C:\PS> $win.height = 10
C:\PS> $win.width = 10
C:\PS> $h.ui.rawui.set_windowsize($win)
描述
-----------
這個命令將 Windows PowerShell 視窗的大小調整為 10 x 10 個像素。
範例 3
C:\PS>(get-host).version | format-list -property *
Major : 2
Minor : 0
Build : -1
Revision : -1
MajorRevision : -1
MinorRevision : -1
描述
-----------
這個命令會取得有關執行在主控程式中的 Windows PowerShell 版本的詳細資訊。您可以檢視這些值,但無法進行變更。
Get-Host 的 Version 屬性包含 System.Version 物件。這個命令會使用管線運算子 (|) 將版本物件傳送給 Format-List Cmdlet。Format-List 命令會使用值為全部 (*) 的 Property 參數來顯示版本物件的所有屬性和屬性值。
範例 4
C:\PS>(get-host).currentculture | format-list -property *
Parent : en
LCID : 1033
KeyboardLayoutId : 1033
Name : en-US
IetfLanguageTag : en-US
DisplayName : English (United States)
NativeName : English (United States)
EnglishName : English (United States)
TwoLetterISOLanguageName : en
ThreeLetterISOLanguageName : eng
ThreeLetterWindowsLanguageName : ENU
CompareInfo : CompareInfo - 1033
TextInfo : TextInfo - 1033
IsNeutralCulture : False
CultureTypes : SpecificCultures, InstalledWin32Cultures, FrameworkCultures
NumberFormat : System.Globalization.NumberFormatInfo
DateTimeFormat : System.Globalization.DateTimeFormatInfo
Calendar : System.Globalization.GregorianCalendar
OptionalCalendars : {System.Globalization.GregorianCalendar, System.Globalization.GregorianCalendar}
UseUserOverride : True
IsReadOnly : False
描述
-----------
這個命令會取得有關執行在主控程式中的 Windows PowerShell 目前文化特性設定的詳細資訊。這就是 Get-Culture Cmdlet 傳回的那個資訊。
(同樣地,CurrentUICulture 屬性傳回的與主控物件的 Get-UICulture 傳回的也是同一個物件)。
主控物件的 CurrentCulture 屬性包含 System.Globalization.CultureInfo 物件。這個命令會使用管線運算子 (|) 將 CultureInfo 物件傳送給 Format-List Cmdlet。Format-List 命令會使用值為全部 (*) 的 Property 參數來顯示 CultureInfo 物件的所有屬性和屬性值。
範例 5
C:\PS>(get-host).currentculture.DateTimeFormat | format-list -property *
AMDesignator : AM
Calendar : System.Globalization.GregorianCalendar
DateSeparator : /
FirstDayOfWeek : Sunday
CalendarWeekRule : FirstDay
FullDateTimePattern : dddd, MMMM dd, yyyy h:mm:ss tt
LongDatePattern : dddd, MMMM dd, yyyy
LongTimePattern : h:mm:ss tt
MonthDayPattern : MMMM dd
PMDesignator : PM
RFC1123Pattern : ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
ShortDatePattern : M/d/yyyy
ShortTimePattern : h:mm tt
SortableDateTimePattern : yyyy'-'MM'-'dd'T'HH':'mm':'ss
TimeSeparator : :
UniversalSortableDateTimePattern : yyyy'-'MM'-'dd HH':'mm':'ss'Z'
YearMonthPattern : MMMM, yyyy
AbbreviatedDayNames : {Sun, Mon, Tue, Wed...}
ShortestDayNames : {Su, Mo, Tu, We...}
DayNames : {Sunday, Monday, Tuesday, Wednesday...}
AbbreviatedMonthNames : {Jan, Feb, Mar, Apr...}
MonthNames : {January, February, March, April...}
IsReadOnly : False
NativeCalendarName : Gregorian Calendar
AbbreviatedMonthGenitiveNames : {Jan, Feb, Mar, Apr...}
MonthGenitiveNames : {January, February, March, April...}
描述
-----------
這個命令會傳回 Windows PowerShell 所使用之目前文化特性的 DateTimeFormat 的詳細資訊。
主控物件的 CurrentCulture 屬性包含 CultureInfo 物件,後者則有許多非常實用的屬性。在這兩者之間,DateTimeFormat 屬性包含有著非常實用屬性的 DateTimeFormatInfo 物件。
若要尋找儲存在物件屬性中的物件型別,請使用 Get-Member Cmdlet。若要顯示物件的屬性值,請使用 Format-List Cmdlet。
範例 6
C:\PS>(get-host).ui.rawui | format-list -property *
ForegroundColor : DarkYellow
BackgroundColor : DarkBlue
CursorPosition : 0,390
WindowPosition : 0,341
CursorSize : 25
BufferSize : 120,3000
WindowSize : 120,50
MaxWindowSize : 120,81
MaxPhysicalWindowSize : 182,81
KeyAvailable : False
WindowTitle : Windows PowerShell 2.0 (04/11/2008 00:08:14)
描述
-----------
這個命令會顯示主控物件之 RawUI 屬性的屬性。藉由變更這些值,您可以變更主控程式的外觀。
範例 7
C:\PS>(get-host).ui.rawui.backgroundcolor = "Black"
C:\PS> cls
描述
-----------
這些命令會將 Windows PowerShell 主控台的背景色彩變更為紅色。"cls" 命令是 Clear-Host 函數的別名,這個命令會將畫面清除,並將整個畫面變更為新的色彩。
這項變更只對目前的工作階段有效。若要為所有工作階段變更主控台的背景色彩,請將該命令加入至 Windows PowerShell 設定檔。
範例 8
C:\PS>$host.privatedata.errorbackgroundcolor = "white"
描述
-----------
這個命令會將錯誤訊息的背景色彩變更為白色。
這個命令會使用 $host 自動變數,它包含目前主控程式的主控物件,而 Get-Host 傳回的與 $host 包含的是同一個物件,因此您可以交替使用它們。
這個命令會以 $host 的 PrivateData 屬性當做其 ErrorBackgroundColor 屬性。若要查看 $host.privatedata 屬性中物件的所有屬性,請輸入 "$host.privatedata | format-list * "。