标题: [文本处理] 批处理命令type 追加内容到另一个文件,不显示中文 [打印本页]
作者: flyegg 时间: 2015-12-6 23:37 标题: 批处理命令type 追加内容到另一个文件,不显示中文
有个文件1.txt,内容:c:\tmp\111.txt
c:\tmp\111.txt文件内容:
你好
123
bat文件内容:
for /f %%i in (1.txt) do type %%i >> 3.txt
为什么111.txt中的中文内容不追加到3.txt文件中呢?只是追加个空行。
作者: pcl_test 时间: 2015-12-6 23:49
测试正常,不是中文可以么?两行都是中文呢?
作者: flyegg 时间: 2015-12-6 23:52
本帖最后由 flyegg 于 2015-12-6 23:59 编辑
非中文的行都追加进去了,中文行只是空行。直接在cmd窗口运行type 111.txt > 333.txt 就可以正常将中文追加进去。
111.txt文件编码是ansi
作者: flyegg 时间: 2015-12-7 00:01
中文内容都进不去,比如:111你好222,追加成111222
作者: terse 时间: 2015-12-7 00:13
type 文件名 楼主一楼的%%i 是文件名吗
作者: flyegg 时间: 2015-12-7 00:15
是的想将一些文件合成一个文件,这些文件在不同的目录中。
作者: pcl_test 时间: 2015-12-7 01:03
本帖最后由 pcl_test 于 2015-12-7 01:04 编辑
后面不加输出到TXT,能正常显示吗?合并可用copy
作者: flyegg 时间: 2015-12-7 01:06
本帖最后由 flyegg 于 2015-12-7 01:10 编辑
不行,这个是在家的机子上,xp系统。
在不同的目录中的多个文件用copy怎么合并啊?谢谢。
作者: pcl_test 时间: 2015-12-7 01:12
真的怀疑你的系统了
作者: flyegg 时间: 2015-12-7 01:24
我又试了一下,在桌面下,看3.txt不显示中文。在cmd下type文件3.txt显示中文。
但第一个字符前面多了个乱码。
这是我系统的问题?
作者: CrLf 时间: 2015-12-7 04:10
utf-8,鉴定完毕,而且是有两个文件头连在一起,也就是
EF BB BF EF BB BF 7B 31....
作者: flyegg 时间: 2015-12-7 07:26
我另存为ansi也不行,要单独转一下码、另存不行?
作者: pcl_test 时间: 2015-12-7 08:28
回复 12# flyegg
上传一份你的问题txt
作者: flyegg 时间: 2015-12-7 14:45 标题: 文件名中带空格,怎么传到%%i中
我想将222.txt里的文件列表中的文件合并到一个文件里,(这些文件名中带空格)用:
for /f %%i in (222.txt) do type "%%i" >> 333.txt
怎么报找不到指定的文件?
或者给我个解决合并的方法吧,222.txt 文件列表中有好多在不同目录的文件。
谢谢。
作者: DAIC 时间: 2015-12-7 17:18
回复 14# flyegg - @echo off
- (for /f "delims=" %%i in ('type "222.txt"') do (
- type "%%i"
- ))>>333.txt
复制代码
作者: terse 时间: 2015-12-7 17:19
- @echo off
- for /f "tokens=*" %%i in (222.txt) do set cp=!cp!+"%%i"
- copy /b !cp:~1! 333.txt
复制代码
作者: flyegg 时间: 2015-12-7 18:16
回复 flyegg
DAIC 发表于 2015-12-7 17:18
这个只有第一个文件写入333.txt了。然后就报找不到指定的文件了,后面的文件肯定有。
terse 发表于 2015-12-7 17:19
这个直接报找不到指定的文件,没写入333.txt。
作者: CrLf 时间: 2015-12-7 18:35
本帖最后由 CrLf 于 2015-12-7 19:39 编辑
你的所有文件都是带 utf-8 文件头的,用 >> 合并到同一个文件时就把文件头叠一块了- <!-- :
- @mshta "%~f0"
- pause
- -->
- <script src="http://bathome.net/lib/diy/Libs.js"></script>
- <script>
- Libs.append('hide')
- Libs.append('WSH')
- Libs.append('Function')
- Libs.append('Prototype')
- Libs.append('DIYprototype')
- Libs.append('iconv')
- </script>
- <script>
- var filelist = type("1.txt").split(/\r?\n/).files()
- var output = filelist._EACH(type).join('\r\n')
- iconv.saveText(output,'3.txt','utf-8')
- </script>
复制代码
作者: DAIC 时间: 2015-12-7 18:37
回复 17# flyegg
把以下文件打包压缩传上来我试试:
111.bat
222.txt
222.txt里面包含的其它txt
作者: flyegg 时间: 2015-12-7 18:51
回复 flyegg
把以下文件打包压缩传上来我试试:
111.bat
222.txt
222.txt里面包含的其它txt
DAIC 发表于 2015-12-7 18:37
谢谢,成功了,其中一个文件是被删了,我的文件是UTF-8的,合并的各文件间没有回车我看成全是第一个文件了。
作者: flyegg 时间: 2015-12-7 20:46
这是第一个问题的附件。
作者: DAIC 时间: 2015-12-7 21:20
回复 20# flyegg
BAT不适合直接处理UTF-8文件
作者: flyegg 时间: 2015-12-7 22:18
本帖最后由 flyegg 于 2015-12-7 22:34 编辑
处理之前先转一下码?用什么程序转呢?
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |