[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 检测用户的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,就显示“恭喜,你的批处理支持中文”。

大家可以根据需求修改~
1

评分人数

    • lxzzr: 这个倒是有点用!PB + 6
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

收藏了~
有用~
我的机子可以呢!

TOP

回复 3# peter1123


不支持中文一般是没有安装中文语言包,这种情况下文件路径里面怎么会有中文?

TOP

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

TOP

回复 5# CrLf


    版主,我在讲一个文件的中文字用批处理复制到另个文件之后是乱码字,这个该怎么办呀, 原文件中“在线” 在另一个文件变成了“ 鍦ㄧ嚎”

TOP

回复 6# 秋风·飞扬


    怎么复制的?再次复制一样么?

TOP

回复 7# bluewing009


    UTF-8编码

TOP

回复 7# bluewing009


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

TOP

返回列表