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

[文本处理] 【已解决】BAT或VBS如何去除文本结尾的空行?

[复制链接]
发表于 2013-5-20 00:32:42 | 显示全部楼层 |阅读模式
去除文本结尾的空行
a.txt用VBS按列分解后,每个文本数据结尾(最底)有一空行,导入excel运行宏代码时会报错,如何修改这VBS代码,就可以去除最底的空行?抑或再写一批处理去除空行?

评分

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

查看全部评分

发表于 2013-5-20 10:37:45 | 显示全部楼层
http://www.bathome.net/thread-24430-1-1.html
是这里头的问题吧?
vbs不懂,第三方也不懂,
没见过猪,但也吃过猪肉,看多了还是知道vbCrLf代表换行回车。
所以应该就是str = str & vbCrLf这里没判断才会空行。加个是否最后一行的判断就可以
或者判断是否第一行;不懂写VBS代码,套用批处理的思路,下面REM的两句~~

  1. Sub getColumn(ar,filename)
  2.         Set file = FSO.OpenTextFile("a.txt",1)
  3. rem set line1=true
  4.         Do While file.AtEndOfStream <> True
  5.                 n = Split(file.ReadLine)
  6. rem if line1 = true then set line1=false else str = str & vbCrLf
  7.                   str = str & n(0)
  8.                   For Each a In ar
  9.                         str = str & " " & n(a)
  10.                   Next
  11.         Loop
  12.         file.Close
  13.         Set file = FSO.CreateTextFile(filename,True)
  14.         file.Write str
  15.         file.Close
  16. End Sub
复制代码

评分

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

查看全部评分

发表于 2013-5-20 12:06:39 | 显示全部楼层
不就行末 多了几个空格么?
用textpro点1下菜单就搞定了。
发表于 2013-5-20 13:24:21 | 显示全部楼层
简单的修改 就是输出时 截取到字符到倒数第一个   Write left(str,len(str)-1)
 楼主| 发表于 2013-5-20 18:37:39 | 显示全部楼层
谢谢各位的热心帮助!完美解决问题。
发表于 2013-5-20 20:22:19 | 显示全部楼层
楼主共享一下解决方法 也方便他人
笨办法 外部 GAWK 解决
  1. gawk "func p(){for(i=2;i<=NF;i++)print $1,$i>>i-1".txt"}func f(){for(i=2;i<=NF;i++)printf $1" "$i>i-1".txt"}{if(getline s){p();$0=s;p()}else f()}" a.txt
  2. pause
复制代码

评分

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

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 23:00 , Processed in 0.021133 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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