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

本帖与另帖(http://www.bathome.net/thread-70452-1-1.html)反复敲打的都与cmd这个功能有关 》即切换当前码页会导致被屏显的变量数据自动转换其编码为当前码页编码... 另帖中6楼代码据此功能示例了用纯批如何互转文本文件的简中/utf-8编码,同理,以下代码根据当前脚本编码的识别结果来即时切换码页以使变量数据得以正常屏显... 代码基于一个简化的假设即脚本文件的编码或是简中(ansi/gb2312)或是 utf-8;代码中调用的 coder.exe 可从本坛第三方下载(http://bcn.bathome.net/s/tool/index.html?key=coder)落地即用,与批处脚本同目录
  1. @echo off &setlocal enabledelayedexpansion
  2. for /f %%a in ('coder.exe -s -a gc -f "%~f0" ') do set "ec=%%a"
  3. if /i "%ec%"=="ansi" (set "_ec=00936") else set "_ec=65001"
  4. chcp %_ec%>nul
  5. set "p=当前码页:" &echo,!p!%_ec%
  6. for /f "tokens=4 delims= " %%a in (
  7.   'netsh interface show interface^|more +3'
  8. ) do set/a "n+=1" &set "_#!n!=网卡名称:%%a" &echo,网卡名称:%%a
  9. pause
  10. if /i "%ec%"=="ansi" (set "_ec=65001") else set "_ec=00936"
  11. chcp %_ec%>nul
  12. echo,!p!%_ec%
  13. for /f "tokens=1* delims==" %%a in ('set _#') do echo,%%b
  14. pause&exit/b
复制代码

TOP

返回列表