Board logo

标题: [其他] 检测用户的cmd是否支持中文的批处理代码 [打印本页]

作者: raymai97    时间: 2011-8-21 22:45     标题: 检测用户的cmd是否支持中文的批处理代码

很多时候我们都不肯定用我们批处理的用户的cmd是否支持中文,虽说大多数用户都装中文版windows,cmd支持中文,但有些用户比如我,是安装英文版的,默认页面为437(美国),所以默认无法在cmd正确显示中文。

为了这个,俺测试过用临时文件,用if来检测是否中文,皆以失败告终。
突然想起chcp命令,于是到网上找找关于chcp的东西,果然找到chcp代码表(附link:http://www.daohei.com/post/p.asp?/=1462),然后用xp虚拟机测试了下,果然成功了~

代码:
  1. @echo off
  2. chcp 936>nul 2>nul
  3. if errorlevel 1 (echo Your CMD not support chinese.) else (echo 恭喜,你的批处理支持中文。)
  4. pause>nul
复制代码
如果errorlevel为1,就代表不支持中文,而此代码则会显示出“Your CMD not support chinese.”
如果不是为1,就显示“恭喜,你的批处理支持中文”。

大家可以根据需求修改~
作者: garyng    时间: 2011-11-9 19:04

收藏了~
有用~
我的机子可以呢!
作者: awk    时间: 2011-12-1 13:36

回复 3# peter1123


不支持中文一般是没有安装中文语言包,这种情况下文件路径里面怎么会有中文?
作者: CrLf    时间: 2011-12-1 20:23

也许可以通过检查 nls 文件是否存在于 path 目录来判断...
  1. for %a in (C_936.nls) do if "%~$path:a"=="" (echo 不支持) else echo 支持
复制代码

作者: 秋风·飞扬    时间: 2012-5-9 12:06

回复 5# CrLf


    版主,我在讲一个文件的中文字用批处理复制到另个文件之后是乱码字,这个该怎么办呀, 原文件中“在线” 在另一个文件变成了“ 鍦ㄧ嚎”
作者: bluewing009    时间: 2012-5-10 00:01

回复 6# 秋风·飞扬


    怎么复制的?再次复制一样么?
作者: gawk    时间: 2012-5-10 13:17

回复 7# bluewing009


    UTF-8编码
作者: 秋风·飞扬    时间: 2012-5-11 10:35

回复 7# bluewing009


    恩。是编码问题,最近在等群主更新iBAT的转编码功能,真的没办法了,batcher点我一句,现在也没弄明白....




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2