我想要为每种语言运行一个脚本。 我需要一种使用批处理文件来找到正在使用的操作系统语言的方法。 无论是在Windows XP还是Windows 7上。
我想要为每种语言运行一个脚本。 我需要一种使用批处理文件来找到正在使用的操作系统语言的方法。 无论是在Windows XP还是Windows 7上。
不确定这在Windows 7上是否仍然适用,但它可以在Windows XP上使用。
reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage
然后您可以解析输出,例如:
0409 --> English
0407 --> German
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%
安装语言在安装时设置并且永远不会改变。"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%
wmic os get oslanguage
返回的值(十进制)与 reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage
返回的值(十六进制)相同。query "HKLM\SYSTEM\CurrentControlSet\Control\MUI\Settings"
上遇到错误,那么您可以使用初始安装语言作为备选方案来获得完整的解决方案。这只是我的个人意见。 - Gilles MaisonneuveFOR /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
)
在控制台CMD中输入命令:
intl.cpl
使用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之间的区别吗?
在命令提示符(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。
w32tm
do? - undefined