创建自定义文化并将其注册到本地计算机powershell

时间:2017-02-02 23:57:17

标签: powershell

是否可以使用powershell创建自定义文化? 我见过使用.NET和C#的例子,并想知道PowerShell是否可以做同样的事情。我只能通过计算机显示文化,但无法使用PowerShell创建自定义文化。

1 个答案:

答案 0 :(得分:4)

msdn上CultureAndRegionInfoBuilder class documentation的示例很容易转换为PowerShell。

例如,我想使用丹麦克朗作为默认货币,但美国文化信息选项除外:

$CultureName = 'x-my-culture'
$BaseCulture = [cultureinfo]::GetCultureInfo('en-US')
$BaseRegion = New-Object System.Globalization.RegionInfo 'US'
$Changes = @{
    CurrencyEnglishName = 'Danish Krone'
    CurrencyNativeName = 'Dansk Krone'
    ISOCurrencySymbol = 'DKK'
}

try
{
    # Set up CultureAndRegionInfoBuilder
    Add-Type -AssemblyName sysglobl
    $CultureBuilder = New-Object System.Globalization.CultureAndRegionInfoBuilder @($CultureName,[System.Globalization.CultureAndRegionModifiers]::None)
    $CultureBuilder.LoadDataFromCultureInfo($BaseCulture)
    $CultureBuilder.LoadDataFromRegionInfo($BaseRegion)


    # Make appropriate changes
    foreach($Property in $Changes.Keys){
        $CultureBuilder.$Property = $Changes[$Property]
    }

    # Register your new culture
    $CultureBuilder.Register()

}
catch
{
    throw
}

要再次注销自定义区域性,请使用静态Unregister()方法:

[System.Globalization.CultureAndRegionInfoBuilder]::Unregister('x-my-culture')