中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 19:05
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何快速判断系统语言? 查看 1,306 回复 11
楼 主 如何快速判断系统语言? 发表于 2007-10-13 16:23 ·  中国 浙江 杭州 电信
中级用户
★★
积分 305
发帖 85
注册 2005-05-23 00:00
21年会员
UID 39004
性别 男
状态 离线
虽然用wmic可以,但这个运行要搜集很多东西,所以处理很慢。大家有没其他方法可以快点的?
2 发表于 2007-10-13 17:40 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
chcp
看活动页代码.
3 发表于 2007-10-13 22:10 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
chcp
932日语,936简体中文,950繁体中文,1252英语
4 发表于 2007-10-14 12:46 ·  中国 浙江 杭州 电信
中级用户
★★
积分 305
发帖 85
注册 2005-05-23 00:00
21年会员
UID 39004
性别 男
状态 离线
chcp查看的好像不行。因为如果在英文系统下改用亚洲语言,那么chcp查出来的还是936.而不是1252
5 发表于 2007-10-14 17:02 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by yardian at 2007-10-13 16:23:
虽然用wmic可以,但这个运行要搜集很多东西,所以处理很慢。大家有没其他方法可以快点的?

你的wmic怎么写的呢?
感觉不会怎么慢。
6 发表于 2007-10-14 18:46 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
Originally posted by yardian at 2007-10-14 12:46 PM:
chcp查看的好像不行。因为如果在英文系统下改用亚洲语言,那么chcp查出来的还是936.而不是1252



你要查的是默认区域设置吧?
7 发表于 2007-10-15 07:08 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Originally posted by yardian at 2007-10-14 12:46 PM:
chcp查看的好像不行。因为如果在英文系统下改用亚洲语言,那么chcp查出来的还是936.而不是1252

看看这个分支下面有没有你要的东西
HKEY_CURRENT_USER\Control Panel\International
8 发表于 2007-11-04 17:08 ·  中国 浙江 杭州 电信
中级用户
★★
积分 305
发帖 85
注册 2005-05-23 00:00
21年会员
UID 39004
性别 男
状态 离线
楼上的兄弟的方法好像不适合用dos查看吧?
9 发表于 2007-11-04 19:45 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
看reg /?
10 发表于 2007-11-04 21:47 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
for /f "skip=4 tokens=3" %%i in ('reg query "HKCU\Control Panel\International" /v "sLanguage"') do echo %%i
pause


@echo off
for /f "skip=4 tokens=3" %%i in ('reg query "HKCU\Control Panel\International" /v "sCountry"') do echo %%i
pause

我就是不明白第2个代码怎么只显示“中”而不是“中国”
第一高手 第二高手

11 发表于 2007-11-04 21:52 ·  中国 上海 东方有线
初级用户
积分 110
发帖 44
注册 2007-11-01 21:56
18年会员
UID 101435
性别 男
状态 离线
我这边中文系统执行此命令的结果是chs
12 发表于 2008-03-19 20:06 ·  中国 广东 深圳 联通
初级用户
积分 89
发帖 36
注册 2007-12-20 15:37
18年会员
UID 106247
性别 男
状态 离线
for /f "skip=4 tokens=3" %%i in ('reg query "HKCU\Control Panel\International" /v "sLanguage"') do echo %%i
pause

在 XP 和 VISTA 下有不同的输出结果。

在我的简体VISTA下,只能在去掉 skip=4 以后才能显示 CHS 的结果。
而在 XP 中,有skip=4 就正常输出CHS, 如果也去掉 skip=4 ,会显示两个结果:
echo VERSION
echo CHS


在 Win2000 里面不能用(没有 REG 命令)。请问在 Win2000 中有无办法判断当前语言?(我曾经使用 CHCP/GRAFTABL 结合 FIND 等命令试验,没有成功。)
论坛跳转: