如何在命令提示符中查找当前的Windows语言?

15

我想要为每种语言运行一个脚本。 我需要一种使用批处理文件来找到正在使用的操作系统语言的方法。 无论是在Windows XP还是Windows 7上。


1
你想要的是用户界面语言,对吧?不是地区设置? - Joey
10个回答

14

不确定这在Windows 7上是否仍然适用,但它可以在Windows XP上使用。

reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage

然后您可以解析输出,例如:

0409 --> English
0407 --> German

1
谢谢,jitter。这在Windows 7上也有效。你解决了我的问题。 顺便说一下: 040D --> 希伯来语谢谢 Speed - user194942
1
040C --> 法语;0C0A --> 西班牙语。 - Alicia
2
请查看此答案,以获取更多数字代码与人类语言名称之间的匹配 https://serverfault.com/a/310221 - jitter
1
这个注册表键在Windows 10中仍然存在。所有语言代码(LCID)都可以在此处找到:https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f - uranibaba

10
您不能使用HKLM\SYSTEM\CurrentControlSet\Control\nls\language下的InstallLanguage,因为它就是安装语言。
虽然您可以直接安装本地化版本的Windows,但这并不总是被执行的,就像我电脑上一样。相反,应用语言包是没问题的,但显示语言与安装语言不同。
此外,如果用户更改了显示语言,则InstallLanguage将不会反映更改。还可能有更多用户具有不同的显示语言。

  • 当前用户显示语言

HKCU\Control Panel\Desktop
PreferredUILanguages

FOR /F "tokens=3" %%a IN ('reg query "HKCU\Control Panel\Desktop" /v PreferredUILanguages ^| find "PreferredUILanguages"') DO set UILanguage=%%a
echo User Display Language: %UILanguage%


本地机器语言、系统语言和用户语言之间存在差异。BCD 语言也有单独的设置,用于恢复和引导管理器。

  • 本地机器语言

安装语言在安装时设置并且永远不会改变。"HKLM\SYSTEM\CurrentControlSet\Control\nls\language" 键的默认值也设置为相同的值。某些 InstallShield 安装程序错误读取此值,导致本地化的 Windows 上显示英文界面。
如果更改显示语言,则新值存储在

HKLM\SYSTEM\CurrentControlSet\Control\MUI\Settings
PreferredUiLanguages

这将覆盖 HKLM\SYSTEM\CurrentControlSet\Control\nls\language 下的 InstallLanguage 值。
值类型混淆,InstallLanguage 是 LCID,PreferredUiLanguages 是 LCID 字符串。 此语言随后被报告为本地机器语言。它不是用户显示语言。

  • 系统语言

这是系统用户的语言。
在用户登录之前,使用此语言。
这意味着这是欢迎屏幕和 OOBE 的语言。

HKEY_USERS\S-1-5-18\Control Panel\Desktop\MuiCached
MachinePreferredUILanguages



还有一种 WMI 方式可以获取操作系统语言,但我没有测试您将获得哪些语言。

wmic os get locale, oslanguage, codeset

FOR /F "tokens=2 delims==" %%a IN ('wmic os get OSLanguage /Value') DO set OSLanguage=%%a
echo OS Language: %OSLanguage%

  1. wmic os get oslanguage 返回的值(十进制)与 reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage 返回的值(十六进制)相同。
  2. 如果没有安装首选语言,那么在查询 "HKCU\Control Panel\Desktop" 的注册表时,(/v PreferredUILanguages) 会返回一个错误。
- Gilles Maisonneuve
如果您在 reg query "HKLM\SYSTEM\CurrentControlSet\Control\MUI\Settings" 上遇到错误,那么您可以使用初始安装语言作为备选方案来获得完整的解决方案。这只是我的个人意见。 - Gilles Maisonneuve

6
使用命令"dism /online /get-intl"。

2
您需要提升权限才能运行此命令行。 - FCA69

4
以下代码解决了我的问题。它适用于Windows Server 2003和Windows 7。
FOR /F "tokens=3 delims= " %%G in ('reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage') DO (
IF [%%G] EQU [0409] (
  ECHO English install language detected
) ELSE (
  ECHO Some other language detected
)

希望能对您有所帮助!

3
末尾缺少一个 )符号。 - remyremy

2

在Windows中,有两种使用命令提示符的方法来执行此操作

第一种方法

  • 打开提升权限的命令提示符
  • 输入以下命令dism /online /get-intl

enter image description here

第二步

  • 打开提升权限的命令提示符
  • 输入以下命令systeminfo

enter image description here

这两个都取决于你的需求


1
在cmd中输入:reg query "HKEY_CURRENT_USER\Keyboard Layout\Preload" 输出结果为:
HKEY_CURRENT_USER\Keyboard Layout\Preload
    2    REG_SZ    00000419
    1    REG_SZ    00000809

像第一个答案一样,您可以使用thisthis网站解析最右边的数字。

如果最左边的数字是1,那么它就是当前正在使用的键盘语言。


1

在控制台CMD中输入命令:

intl.cpl


1

使用PowerShell并在Windows7和Windows10上进行测试(可能在XP上工作,但PowerShell不是XP的本机应用程序)

无需提升的命令提示符。

给出了命令行执行的语法

powershell get-uiculture

或者

powershell -NoProfile "Get-UICulture|select -ExpandProperty LCID"

或者

最后一个仅适用于Windows10。

powershell [CultureInfo] :: InstalledUICulture

制作者/参考:

https://winaero.com/find-default-system-language-windows-10/ and

我能知道在PowerShell中,[CultureInfo]::InstalledUICulture和Get-UICulture之间的区别吗?


0
在Windows 10 1903中,当前用户的语言设置似乎可以在"HKCU\Control Panel\International\LocaleName"中找到。

0

在命令提示符(cmd)上使用一个命令,并搜索与您的查询相关的英文单词。

示例:w32tm /query /peers >> somewhere.txt

#Peers: 1

Peer: ca.pool.ntp.org
State: Active
Time Remaining: 58.3260171s
Mode: 3 (Client)
Stratum: 3 (secondary reference - syncd by (S)NTP)
PeerPoll Interval: 17 (out of valid range)
HostPoll Interval: 10 (1024s)

第一行始终是“peers”或“service not started”,因此,如果用户使用的语言不是英语,则脚本将无法找到此单词,结果可能返回0。


What does w32tm do? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接