8 language-features windows-xp cmd
我想为每种语言运行一个脚本.我需要一种方法来使用批处理文件来查找正在使用的语言.在Windows XP和Windows 7上都有.
谢谢
jit*_*ter 13
不知道这是否仍然适用于Windows 7,但它在Windows XP中仍然有效
reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage
Run Code Online (Sandbox Code Playgroud)
然后你可以解析输出.例如
0409 --> English
0407 --> German
Run Code Online (Sandbox Code Playgroud)
您不能在HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ language下使用InstallLanguage,
因为这就是它的意思:安装语言
尽管您可以直接安装Windows的本地化版本,但并非总是如此,因为它不是在我的电脑上。而是可以使用语言包,这很好,但是显示语言与安装语言不同。
同样,如果用户更改了他的显示语言,则InstallLanguage将不会反映该更改。并且可能会有更多使用不同显示语言的用户。
HKCU \控制面板\台式机
首选UI语言
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%
Run Code Online (Sandbox Code Playgroud)
安装语言会在安装时设置,并且永远不会更改
。“ 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方式可以获取OS语言,但是我没有测试您将获得哪种语言?
wmic os获取语言环境,语言,代码集
FOR /F "tokens=2 delims==" %%a IN ('wmic os get OSLanguage /Value') DO set OSLanguage=%%a
echo OS Language: %OSLanguage%
Run Code Online (Sandbox Code Playgroud)