我尝试过Set-Culture -CultureInfo vi-VN,但 Powershell 并未更改为我设置的文化。
我通过打开Powershell ISE进行测试,看到我设置的文化已成功更改。
如何使用 Powershell 更改我设定的文化?
假设您已经开始一个新会话(见下文):
您可能遇到了Windows PowerShell bug,从 v5.1.18362.628 开始出现):
更改为区域性vi-VN(Vietnamese (Vietnam)、 LCID 1066),特别是[1],似乎在控制台窗口[2]的Windows PowerShell (v5.1-)中不起作用(而正如您所说,它在过时的PowerShell ISE中起作用)。
注意:更改通常会对当前用户帐户生效,但在 Windows PowerShell 控制台窗口中不会生效。
PowerShell [Core] 6+不受影响。
至于潜在的修复:Windows PowerShell 不再处于积极开发阶段,因此仅实施关键修复。您可以在相关UserVoice 论坛中报告 Windows PowerShell 错误。
一般来说:
Set-Culture在整个系统范围内持续改变当前用户的文化。
这仅在未来的PowerShell 会话(进程)中生效,因此您必须打开一个新的PowerShell 控制台窗口,例如,更改才能生效。
截至撰写本文时,Set-Culture 帮助主题并未提及此要求;修复此 GitHub 问题中建议的问题。
不过,任务栏的通知区域会立即在日期和时间显示中反映出新的文化,注意这一点原则上会提供关于调用是否成功的即时反馈;例如,如果您运行Set-Culture fr-FR(法语),日期和时间将更改为类似以下内容(“jeudi”是法语,表示星期四):
要开始新会话,请执行以下操作之一:
在安装了PowerShell 扩展的Visual Studio Code中,如下所示终止 PowerShell 集成控制台,并选择在出现提示时重新启动它(或者,在集成终端中启动新的常规(非集成)PowerShell 实例)。
在 -过时的- ISE 中,打开一个新的 PowerShell 选项卡 ( File > New PowerShell Tab、Ctrl-T)。
当更改处于挂起状态时,即在开始新会话之前Get-Culture,报告仍然有效(旧)的值,而不是挂起的值。
您需要将预定义的特定区域性的名称作为(隐含的)-CultureInfo参数传递。
特定文化有一个名称,例如fr-FR,其中fr指定语言(法语)和FR位置(地区或国家);相比之下,诸如 之类的纯语言文化名称不受支持并被悄悄忽略。fr
要获取预定义的特定区域性列表,请运行以下命令,或者,仅对于 Windows,请参阅此文档:
[cultureinfo]::GetCultures('SpecificCultures')[1] 不确定其他文化是否也受到影响。
[2] 在Windows 终端中运行也没有帮助。这表明该错误存在于ConsoleHost运行基于控制台的 PowerShell 会话的 PowerShell 主机内部(而 ISE 实现其自己的主机Windows PowerShell ISE Host),如 中所反映的$HOST。
| 归档时间: |
|
| 查看次数: |
2343 次 |
| 最近记录: |