找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32442|回复: 4

[文本处理] 请问CMD如何输出UTF-8编码的文件

[复制链接]
发表于 2015-12-5 08:52:44 | 显示全部楼层 |阅读模式
有一个CMD命令脚本,是输出手机电话本的VCF格式的,但默认是ANSI编码,请问如何让CMD输出默认是UTF-8编码。
(因为VCF生成后再手动将ANSI修改UTF-8就会破坏文件了,所以必须在CMD输入时就默认保存UTF-8编码)
请问有办法吗?谢谢。
-----------------------------------------------------------以下是CMD内容-----------------------------------------------------------
  1. @echo off
  2. setlocal EnableDelayedExpansion

  3. del temp.txt
  4. del veryhuo.vcf

  5. set /a line=1
  6. for /f "tokens=1,2,3,4 delims=," %%a in (veryhuo.csv) do (
  7.         if !line! gtr 1 (
  8.                 (echo BEGIN:VCARD)       >> temp.txt
  9.                 (echo VERSION:3.0)                 >> temp.txt
  10.                 (echo N:;%%a;;;)                 >> temp.txt
  11.                 (echo FN:%%a)                         >> temp.txt
  12.                 (echo TEL;TYPE=X-qchat:%%b) >> temp.txt
  13.                 (echo END:VCARD)                 >> temp.txt
  14.         )
  15.         set /a line+=1
  16. )

  17. ren temp.txt veryhuo.vcf
复制代码
----------------------------------------------------------------------------------------------------------------------
发表于 2015-12-5 10:18:25 | 显示全部楼层
方便的话 用js +bat 直接处理
发表于 2015-12-5 12:12:53 | 显示全部楼层
发表于 2015-12-5 22:14:33 | 显示全部楼层
本帖最后由 CrLf 于 2015-12-6 00:00 编辑
  1. mshta "http://bathome.net/s/hta/index.html?load=+sprintf" type('veryhuo.csv').split(/\r?\n/)._EACH(function(s){a=s.split(',');return sprintf('BEGIN:VCARD\r\nVERSION:3.0\r\nN:;%%s;;;\r\nFN:%%s\r\nTEL;TYPE=X-qchat:%%s\r\nEND:VCARD\r\n',a[0],a[0],a[1])}).slice(1).join('\r\n') >temp.txt
复制代码
其实原来有一个 csv 库的,但使用起来好像有点问题,不知道是不是 bug

受权限所制,在线 hta 不能使用 adodb.stream 写入文件,所以若要输出为 utf-8 需要这样写
  1. <!-- :
  2. @echo off
  3. mshta "%~f0" veryhuo.csv temp.txt
  4. pause&exit /b
  5. -->
  6. <script src=http://bathome.net/lib/diy/Libs.js></script>
  7. <script>
  8. Libs.append('hide')
  9. Libs.append('WSH')
  10. Libs.append('prototype')
  11. Libs.append('diyprototype')
  12. Libs.append('function')
  13. Libs.append('iconv')
  14. Libs.append('sprintf')
  15. </script>
  16. <script>
  17. var arr = type(WSH.Arguments(0)).split(/\r?\n/).slice(1)
  18. var str = arr._EACH(
  19.         function(s){
  20.                 a=s.split(',')
  21.                 return sprintf('BEGIN:VCARD\r\nVERSION:3.0\r\nN:;%s;;;\r\nFN:%s\r\nTEL;TYPE=X-qchat:%s\r\nEND:VCARD\r\n',a[0],a[0],a[1])
  22.         }
  23. ).join('\r\n')
  24. iconv.saveText(str,WSH.Arguments(1),'utf-8')
  25. </script>
复制代码
发表于 2015-12-6 00:01:34 | 显示全部楼层
本帖最后由 CrLf 于 2015-12-6 03:36 编辑

如果 csv 库能用的话,就方便多了
  1. mshta "http://bathome.net/s/hta/?load=+csv" new CSV(type('veryhuo.csv').replace(/^\s+/gm,''),{header:true})._EACH(function(o){return 'BEGIN:VCARD\r\nVERSION:3.0\r\nN:;'+o['姓名']+';;;\r\nFN:'+o['姓名']+'\r\nTEL;TYPE=X-qchat:'+o['电话']+'\r\nEND:VCARD\r\n'}).join('\r\n') >temp.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:24 , Processed in 0.017536 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表