【发布时间】:2021-09-08 10:30:34
【问题描述】:
我创建了一种自定义文化,即“gh-es”。我正在尝试检查它是否已经注册。如果文化已注册,它工作正常,但如果没有,它只会在启动时抛出错误。
我无法找到如何检查文化是否存在或检查其是否存在
$CustomCulture= [cultureinfo]::GetCultureInfo('gh-es')
If($CustomCulture -ne null)
{
Write-output "culture already registered"
}
Else
{
$CultureName = 'gh-es'
$BaseCulture=[cultureinfo]::GetCultureInfo('es-US')
$BaseRegion = New-Object System.Globalization.RegionInfo 'es-US'
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)
$CultureBuilder.Register()
}
catch
{
throw
}
}
【问题讨论】:
-
[1] 请在问题中发布您的代码 - 包含在格式标记中。 ///// [2] 请在问题中发布您的完整错误文本 - 包含在格式标记中。 ///// [3]你看过
try/catch处理错误的结构吗? -
我已经添加了相同的代码,如果文化没有注册,我在第一行本身就会出错
-
@ShianJA 你忘了回答 Lee_Dailey 的第三个问题。
-
是的,我用过,但是如果我们只是检查一个值是否存在,为什么要使用 try
-
@ShianJA - 请查看我的答案,了解使用错误处理来处理文化检查的示例。
标签: powershell powershell-2.0 powershell-3.0 cultureinfo culture