标题: [文本处理] 请问CMD如何输出UTF-8编码的文件 [打印本页]
作者: terrancrm 时间: 2015-12-5 08:52 标题: 请问CMD如何输出UTF-8编码的文件
有一个CMD命令脚本,是输出手机电话本的VCF格式的,但默认是ANSI编码,请问如何让CMD输出默认是UTF-8编码。
(因为VCF生成后再手动将ANSI修改UTF-8就会破坏文件了,所以必须在CMD输入时就默认保存UTF-8编码)
请问有办法吗?谢谢。
-----------------------------------------------------------以下是CMD内容------------------------------------------------------------ @echo off
- setlocal EnableDelayedExpansion
-
- del temp.txt
- del veryhuo.vcf
-
- set /a line=1
- for /f "tokens=1,2,3,4 delims=," %%a in (veryhuo.csv) do (
- if !line! gtr 1 (
- (echo BEGIN:VCARD) >> temp.txt
- (echo VERSION:3.0) >> temp.txt
- (echo N:;%%a;;;) >> temp.txt
- (echo FN:%%a) >> temp.txt
- (echo TEL;TYPE=X-qchat:%%b) >> temp.txt
- (echo END:VCARD) >> temp.txt
- )
- set /a line+=1
- )
-
- ren temp.txt veryhuo.vcf
复制代码
----------------------------------------------------------------------------------------------------------------------
作者: terse 时间: 2015-12-5 10:18
方便的话 用js +bat 直接处理
作者: 回家路上 时间: 2015-12-5 12:12
http://www.bathome.net/thread-31329-1-1.html
作者: CrLf 时间: 2015-12-5 22:14
本帖最后由 CrLf 于 2015-12-6 00:00 编辑
- 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 需要这样写- <!-- :
- @echo off
- mshta "%~f0" veryhuo.csv temp.txt
- pause&exit /b
- -->
- <script src=http://bathome.net/lib/diy/Libs.js></script>
- <script>
- Libs.append('hide')
- Libs.append('WSH')
- Libs.append('prototype')
- Libs.append('diyprototype')
- Libs.append('function')
- Libs.append('iconv')
- Libs.append('sprintf')
- </script>
- <script>
- var arr = type(WSH.Arguments(0)).split(/\r?\n/).slice(1)
- var str = arr._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])
- }
- ).join('\r\n')
- iconv.saveText(str,WSH.Arguments(1),'utf-8')
- </script>
复制代码
作者: CrLf 时间: 2015-12-6 00:01
本帖最后由 CrLf 于 2015-12-6 03:36 编辑
如果 csv 库能用的话,就方便多了- 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
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |