我想为每种语言运行一个脚本。 我需要一种方法来使用批处理文件来查找正在使用的语言。 在Windows XP和Windows 7上都有。
由于
答案 0 :(得分:13)
不知道这是否仍然适用于Windows 7,但在Windows XP中仍然有效
reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage
然后你可以解析输出。 e.g。
0409 --> English
0407 --> German
答案 1 :(得分:4)
您无法在HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ language下使用InstallLanguage
因为这就是它所说的:安装语言
虽然您可以直接安装本地化版本的Windows,但并不总是这样,因为它不在我的电脑上。而是应用了一个语言包,这很好,但是显示语言与安装语言不同
此外,如果用户更改其显示语言,InstallLanguage将不会反映更改。并且可能有更多用户使用不同的显示语言。
HKCU \控制面板\桌面
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语言设置,用于恢复和启动管理器
安装语言在安装时设置,永远不会更改 也是&#34; HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ language&#34;的默认值key设置为相同的值。某些InstallShield安装程序错误地读取了该值,导致本地化Windows上的英文界面 如果更改显示语言,则新值存储在
中HKLM \系统\ CurrentControlSet \控制\ MUI \设置
PreferredUiLanguages
这将覆盖HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ language下的InstallLanguage值
值类型有混淆,而InstallLanguage是LCID,PreferredUiLanguages是LCID字符串。
然后将该语言报告为本地机器语言。它不是用户显示语言
这是系统用户的语言
在用户登录之前,使用此语言
这意味着它是欢迎屏幕和OOBE的语言。
HKEY_USERS \ S-1-5-18 \控制面板\桌面\ 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%
答案 2 :(得分:3)
以下代码解决了我的问题。它适用于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 :(得分:3)
使用&#34; dism / online / get-intl&#34;命令。
答案 4 :(得分:1)
在控制台CMD写命令中:
intl.cpl
答案 5 :(得分: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)
第一行始终是“对等”或“服务未启动”,因此,如果用户使用的语言不是英语,则脚本将找不到该单词,并且结果可以返回0。
答案 6 :(得分:0)
在cmd中:reg query "HKEY_CURRENT_USER\Keyboard Layout\Preload"
这将产生:
HKEY_CURRENT_USER\Keyboard Layout\Preload
2 REG_SZ 00000419
1 REG_SZ 00000809
就像第一个答案一样,然后使用this或this网站解析最右边的数字
如果最左边的数字是数字1,即当前使用的当前键盘语言。
答案 7 :(得分:0)
在Windows 10 1903中,当前用户的语言设置似乎在“ HKCU \控制面板\国际\本地名称”中找到
答案 8 :(得分:0)
使用 powershell 并在 windows7 和 windows10 上测试(可能适用于 XP,但 powershell 不是 XP 原生的)
不需要提升的命令提示符。
给出命令行执行的语法
powershell get-uiculture
或
powershell -NoProfile "Get-UICulture|select -ExpandProperty LCID"
或
最后一个仅适用于 windows10。
powershell [CultureInfo]::InstalledUICulture
信用/参考:
here 和
https://winaero.com/find-default-system-language-windows-10/
答案 9 :(得分:0)