中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 08:00
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 根据操作系统的语言创建快捷方式 查看 1,909 回复 7
楼 主 根据操作系统的语言创建快捷方式 发表于 2006-12-05 23:52 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
没有发表过文章,也来发表一下。见笑,还望高手指点。
怎样根据操作系统的语言创建桌面,快速启动和程序菜单中的快捷菜单呢?虽然目前有很多软件都支持,但效果不是很理想,要么创建的快捷方式受到限制,要么就创建的不是很顺利。
其实使用批处理就可以简单的实现。。。。。
首先在文件夹的同目录建立程序的快捷方式,并设置好图标和名称;
其次使用“桌面”,或“程序”等关键字判断是什么语言的操作系统,在根据不同的操作系统建立快捷方式。示范代码如下:
@echo off
rem 建立快捷方式前先隐藏去掉快捷方式的隐藏属性,注意我的快捷方式在上层目录中,名称为“Microsoft Office Access2K Runtime.lnk”
ATTRIB -H ..\"Microsoft Office Access2K Runtime.lnk"
rem 使用IF EXIST判断系统语言并复制快捷方式
IF EXIST "%ALLUSERSPROFILE%"\DESKTOP\ copy ..\"Microsoft Office Access2K Runtime.lnk" "%ALLUSERSPROFILE%"\DESKTOP\ /Y
IF EXIST "%ALLUSERSPROFILE%"\桌面\ copy ..\"Microsoft Office Access2K Runtime.lnk" "%ALLUSERSPROFILE%"\桌面\ /Y
IF EXIST "%ALLUSERSPROFILE%"\"「START」MENU"\PROGRAM\ copy ..\"Microsoft Office Access2K Runtime.lnk" "%ALLUSERSPROFILE%"\"「START」MENU"\PROGRAM\ /Y
IF EXIST "%ALLUSERSPROFILE%"\"「开始」菜单"\程序\ copy ..\"Microsoft Office Access2K Runtime.lnk" "%ALLUSERSPROFILE%"\"「开始」菜单"\程序\ /Y
IF EXIST "%ALLUSERSPROFILE%"\"「開始」菜單"\程序\ copy ..\"Microsoft Office Access2K Runtime.lnk" "%ALLUSERSPROFILE%"\"「開始」菜單"\程序\ /Y
copy ..\"Microsoft Office Access2K Runtime.lnk" "%USERPROFILE%"\"Application Data"\"Microsoft"\"Internet Explorer"\"Quick Launch"\ /Y
REM 完成后隐藏快捷方式。
ATTRIB +H ..\"Microsoft Office Access2K Runtime.lnk"

说明:如何在简体系统上获取繁体字:在WINWORD中输入需要的文字,使用繁简转换获得繁体文字,再在记事本中编辑批处理时替换即可。
由于本人工作在广东这边,所以很多时候都使用繁体系统,简体的批处理在繁体上全是乱码,所以可以使用这种思路编写多语版本的提示文字,如
IF EXIST "%ALLUSERSPROFILE%"\"「START」MENU“\ CALL EN.BAT
IF EXIST "%ALLUSERSPROFILE%"\"「开始」菜单"\ CALL CHS.BAT
IF EXIST "%ALLUSERSPROFILE%"\"「開始」菜單"\ CALL CHT.BAT
2 发表于 2006-12-06 00:05 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  判断操作系统的语言版本,可以用 chcp 命令。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-12-06 00:26 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
请问namejm斑竹,使用namejm怎么来判断呢?我只知道这个东西如果是使用某些纯DOS后不能识别中文,可以用这个东西来转化。请详细解说下。谢谢。
4 发表于 2006-12-06 00:27 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
我的意思是判断系统是简体,还是繁体语言
5 发表于 2007-01-22 09:22 ·  中国 浙江 电信
中级用户
★★
积分 385
发帖 156
注册 2007-01-19 02:32
19年会员
UID 76955
性别 男
状态 离线
932日语
936简体
950繁体
1252英语

不知道对不对。
有这些就可以判断了吧?希望楼主完善代码
6 发表于 2007-02-16 03:10 ·  中国 广东 深圳 电信
初级用户
★★
积分 135
发帖 64
注册 2006-12-20 04:35
19年会员
UID 74003
性别 男
状态 离线
好贴子。。收藏先
7 发表于 2007-12-05 13:18 ·  中国 湖北 荆门 移动
新手上路
积分 7
发帖 4
注册 2007-12-05 12:57
18年会员
UID 104732
性别 男
状态 离线
好贴子
8 发表于 2008-01-25 00:41 ·  美国 Verizon
新手上路
积分 4
发帖 2
注册 2007-12-17 23:27
18年会员
UID 105985
性别 男
状态 离线
@echo off
cls

for /f "tokens=1,2,3,4" %%h in ('chcp') do (set lang=%%k)

::code page 判斷繁,簡, 其他語言時使用英文
if /i %lang% EQU 950 (goto CHT) else (goto Eng)
if /i %lang% EQU 936 (goto CHS) else (goto Eng)

:CHT
echo 繁體版本
goto EX

:CHS
echo 簡體版本

goto EX

:ENG
echo 英文版本



:EX
::echo 退出

exit
论坛跳转: