Set-Culture设置NumberDecimalSeparator

时间:2019-08-27 14:32:16

标签: windows powershell

我想通过powershell永久更改当前用户的数字小数分隔符;该机器是Window 10 Professional,因此开箱即用了Set-Culture cmdlet。

我尝试了这个,但是不起作用:

$culture=Get-Culture

$culture.NumberFormat.NumberDecimalSeparator="."
$culture.NumberFormat.NumberGroupSeparator=" "
$culture.NumberFormat.NumberNegativePattern=1

Set-Culture $culture

它不返回任何异常,但是设置不存在。
我以管理员身份执行。

1 个答案:

答案 0 :(得分:1)

如评论中所述,Set-Culture仅接受预定义的文化,而持久地修改文化的唯一方法是采用<通过位于HKEY_CURRENT_USER\Control Panel\International 的注册表对用户当前的区域性设置进行em> user覆盖:

@{ Name = 'sDecimal';   Value = '.' },
@{ Name = 'sThousand';  Value = ' ' },
@{ Name = 'iNegNumber'; Value = 1   } | 
  ForEach-Object {
    Set-ItemProperty 'HKCU:\Control Panel\International' @_
  }

这等同于您在问题中所尝试的操作。
这些更改将在将来 PowerShell会话中生效。

请注意,您可能还想通过值sMonDecialSepsMonThousandSep和{{1}更改 currency 的类似设置}}。

注意:

  • 由于相关的注册表值名称可能不太明显,因此可以使用控制面板(iNegCurr)交互地更改设置,然后在{{1}处观察对注册表值的影响。 }(通过intl.cpl)。

  • 如果以后通过HKEY_CURRENT_USER\Control Panel\International切换到不同区域性,则会丢弃