创建自定义区域性并将其注册到本地计算机Powershell

Ryu*_*Ryu 2 powershell

是否可以使用Powershell创建自定义文化?我已经看到了使用.NET和C#的示例,并且想知道powershell是否可以做到这一点。我只能通过计算机显示文化,而不能使用Powershell创建自定义文化。

Mat*_*sen 5

msdn上的CultureAndRegionInfoBuilder类文档中的示例可以轻松转换为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
}
Run Code Online (Sandbox Code Playgroud)

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

[System.Globalization.CultureAndRegionInfoBuilder]::Unregister('x-my-culture')
Run Code Online (Sandbox Code Playgroud)