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

[文本处理] [已解决]批处理如何将TXT文档转换成CSV文档并在第一行前添加一行列标题?

[复制链接]
发表于 2011-8-22 00:44:00 | 显示全部楼层 |阅读模式
本人新人,请问批处理如何快捷的将某一目录下的(如C:\1)TXT文档一次性转换成到另一指定目录下的(如D:\1) CSV文档,文档名不变,而且转换后的CSV文档第一行新插入多一行的文字,并且文字与所在列的数字是对应的,并显示“转换完成”,谢谢!附图是需要的前后效果,谢谢并附上测试文档

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-8-22 01:08:28 | 显示全部楼层
没明白楼主想插入的那一行是什么内容呢?是图中的 Date Open High... 那一行吗?
 楼主| 发表于 2011-8-22 01:14:00 | 显示全部楼层
是的,就那一行,谢谢CrLf
发表于 2011-8-22 01:28:24 | 显示全部楼层
本帖最后由 raymai97 于 2011-8-22 01:31 编辑

这个代码可以把a.txt换成a.csv,并加上那一个date,open...
  1. @echo off
  2. ::file就是文件名称
  3. set file=a.txt
  4. ::去除后缀名
  5. for /f "delims=." %%i in ("%file%") do set file=%%i
  6. echo Date, Open, High, Low, Close, Volume, Op Int>%file%.csv
  7. for /f "delims=" %%i in (%file%) do echo %%i>>%file%.csv
  8. exit
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-8-22 01:39:16 | 显示全部楼层
谢谢Raymai97,但能否把目录下的TXT全部一次性转换,并显示“转换完成”
 楼主| 发表于 2011-8-22 01:56:57 | 显示全部楼层
本帖最后由 rickyho 于 2011-8-22 01:59 编辑

谢谢各位,但如何指定从某目录下的TXT转换到指定另一目录的CSV,现在只能在批处理的当前目录转换。还有一个问题就是,如果TXT里的“,”界定符变成“TAB空格”的界定符,如:“2009/03/27        3566.00        3689.00        3520.00        3631.00        516        244”(空白处是TAB空格),也怎样转换成“date,open...”格式的CSV文件,谢谢
 楼主| 发表于 2011-8-22 02:15:39 | 显示全部楼层
还有就是,else,用你的代码BAT转换的CSV文件,跟手工将TXT另存为转换出来的那种格式的CSV文件,同样的文件,大小有区别,手工的比批处理的还小,请问是什么问题吗,谢谢
 楼主| 发表于 2011-8-22 02:51:32 | 显示全部楼层
论坛无法直接发TAB字符,请自行替换代码中的TAB为相应字符
else 发表于 2011-8-22 02:11



  谢谢!文件大小不同如图,手工保存时EXCEL提示的,请问是批处理对EXCEL处理不好,还是要用VBS,附上TXT原件和批处理,手动添加另存的CSV文档,
 楼主| 发表于 2011-8-22 15:40:14 | 显示全部楼层
再顶,请帮助了,谢谢
发表于 2011-8-22 18:24:42 | 显示全部楼层
回复 11# rickyho


    你这个图,的确有点奇怪:

用notepad打开手工另存和批处理转换的看看~ 也许能知道为何比较小的原因~

因为else的代码基本就是把你原本的txt的最上端加上一行date、open的东西,并另存为csv

可能是excel把某一部分的东西改了,建议你打包上传你用excel另存的xls,好让我们研究研究~
发表于 2011-8-22 18:33:25 | 显示全部楼层
我帮你检查了下,因为你的txt里面的数据没有经过优化,比如2009/01/01、10.00
而excel另存时,会自动把你没有优化的数据优化,比如10.00变成10

这就可以解释为何excel另存的比较小~

所以简单来说数据并没有改变,楼主可以放心~
发表于 2011-8-23 02:25:49 | 显示全部楼层
这个太简单了吧,LZ是新手吧
 楼主| 发表于 2011-8-23 22:40:06 | 显示全部楼层
这个太简单了吧,LZ是新手吧
qc5111 发表于 2011-8-23 02:25


恩,是新手,所以要请教各位,转换的CSV文件应该是逗号分割的那种,谢谢
发表于 2011-8-24 00:12:08 | 显示全部楼层
回复 15# rickyho


    这样楼主到底还有什么需要解决的呢?怎么标题还是“已解决部分”了呢?那个文件不同大小的原因我已经说了啊~
 楼主| 发表于 2011-8-24 08:05:58 | 显示全部楼层
哦,已改了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 20:57 , Processed in 0.021149 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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