Board logo

标题: [求助]如何获得操作系统的语言版本呢? [打印本页]

作者: AppleWolf     时间: 2008-9-19 19:07    标题: [求助]如何获得操作系统的语言版本呢?

如题,如何获得操作系统的语言版本呢?!

前提:主要是用于 Windows XP 及 Windows 2003的.

先谢谢各位了!
作者: moniuming     时间: 2008-9-19 19:37
不知道这里是否有你要的信息?
systeminfo
作者: pusofalse     时间: 2008-9-19 19:56

@echo off
for /f "tokens=1-4 delims=[ " %%a in ('ver') do set/p=%%a %%b %%c <nul&set "version=%%d"
if "%version:~,1%" gtr "Z" (set "lan=中文") else set "lan=Eng"
set/p= %lan%<nul
pause>nul

作者: HAT     时间: 2008-9-19 19:57

@echo off
for /f "skip=4 delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v "sLanguage"') do set Language=%%a
set Language=%Language:~-3%
echo %Language%

作者: AppleWolf     时间: 2008-9-19 21:30


  Quote:
Originally posted by moniuming at 2008-9-19 07:37 PM:
不知道这里是否有你要的信息?
systeminfo

首先,谢谢这位大哥
你提出的Systeminfo方法我早想过了,也试过了,确实能取到,但是比较头大的问题是,Systeminfo后,时间太长了。
我主要是考虑效率上要高点的。
谢谢。
作者: AppleWolf     时间: 2008-9-19 21:33


  Quote:
Originally posted by pusofalse at 2008-9-19 07:56 PM:
[code]@echo off
for /f "tokens=1-4 delims=[ " %%a in ('ver') do set/p=%%a %%b %%c <nul&set "version=%%d"
if "%version:~,1%" gtr "Z" (set "lan=中 ...

谢谢你,不过我测试过了。
如果在CMD下曾经执行过 EDIT,那就非常不幸,获得的是英文。
而你的代码主要是实别VER命令后面方括号内的头一个字符编码是否大于Z,但如果执行过EDIT这种命令后,获得的第一个字母将会是V,呵呵

不过还是非常感谢你!!!
作者: AppleWolf     时间: 2008-9-19 21:34


  Quote:
Originally posted by HAT at 2008-9-19 07:57 PM:
[code]@echo off
for /f "skip=4 delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v "sLanguage"') do set Language=%%a
set Language=%Languag ...

HAT老大不愧是老大,用读注册表的方法获取操作系统信息,效率非常高。而且获得的值“稳定性”也非常高。

谢谢HAT老大!