标题: [文本处理] 【已结】怎么用批处理批量转存txt文件? [打印本页]
作者: kingerpk 时间: 2009-2-1 00:47 标题: 【已结】怎么用批处理批量转存txt文件?
我从网上下载了很多txt格式的电子书。但其编码不是2进制的。在我的手机看到的全是乱码,但在电脑上把其内容存倒另一个txt中就可解决这个问题(应该是很傻的办法)。或许有其他办法,但我想用批处理来做我刚才所描述的过程,要怎么做呢?
顺便看看我的菜鸟代码有什么问题:(我的文件是放在h:\123中)- h:
- dir h:\123> h:\1.txt
- setlocal EnableDelayedExpansion
- for /r . %%A in (h:\123) do for /f "skip=7 tokens=4 delims= " %%a in (1.txt) do echo %%a > h:\2.txt & for /f %%B in (2.txt) do set p=%%B & type %p%*.txt > e:\%p%.txt
- ::把文件名从1.txt中提取出来(可能会不完整) 放到2.txt中 再把2.txt中的每行(即文件名)赋给p 再把%p%*.txt type 进%p%.txt中(考虑到文件名提取得不完整,所以用*)
- pause
复制代码
但运行结果~~~~~~~~~
我刚接触批处理几天相当的不懂
还望各位指点指点。
[ 本帖最后由 kingerpk 于 2009-2-1 01:02 编辑 ]
作者: terse 时间: 2009-2-1 01:57
你直接 TYPE 行不呢?
作者: kingerpk 时间: 2009-2-1 12:56 标题: 回复 2楼 的帖子
但我要其文件名也不变啊!!!!!!!!!!
具体要怎么做啊!!!!!!!!!!!
帮帮我啊!!!!!!!
作者: wxcute 时间: 2009-2-1 13:29
for /f "delims=" %%i in ('dir/b/s h:\123\*.txt') do type "%%i">"e:\%%~nxi"
作者: kingerpk 时间: 2009-2-1 13:39
原帖由 wxcute 于 2009-2-1 13:29 发表
for /f "delims=" %%i in ('dir/b/s h:\123\*.txt') do type "%%i">"e:\%%~nxi"
万分感谢!!!!!
可否解释('dir/b/s h:\123\*.txt')是什么意思
"%%i">"e:\%%~nxi"呢?
作者: defanive 时间: 2009-2-1 13:41
楼上的代码,还是吧type "%%i"拓展成type "%%~i"好点吧,防止多重引号。。。
作者: wxcute 时间: 2009-2-1 13:51 标题: 回复 6楼 的帖子
dir 列文件名时不会出现引号,因为文件名是禁止用引号的。
回 5 楼
dir/b/s h:\123\*.txt,列出目录 h:\123 下所有文本文档。
参阅 FOR /F 参数帮助,单引号表示将命令结果传送给 FOR 处理。
"%%i">"e:\%%~nxi",参阅 FOR 命令帮助中变量扩展部分。
作者: kingerpk 时间: 2009-2-1 20:57 标题: 回复 7楼 的帖子
明白了!!!谢谢!!!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |