[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理如何将两字符串之间的空格变为逗号?

我的$NR.txt文件内容如下:
DB00175        BE0000574                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00177        BE0000062                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00178        BE0000221                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00190        BE0002151                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00191        BE0000486        BE0000749        BE0000647        BE0002198        BE0002196                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00193        BE0000770        BE0000486        BE0000749        BE0000533        BE0000632        BE0000420        BE0000641

希望经过处理后的out.txt内容如下(第一列与第二列之间的空格不动,行与行之间的空格也不动)

DB00175        BE0000574                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00177        BE0000062                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00178        BE0000221                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00190        BE0002151                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00191        BE0000486,BE0000749,BE0000647,BE0002198,BE0002196                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
DB00193        BE0000770,BE0000486,BE0000749,BE0000533,BE0000632,BE0000420

自己看了好一会正则表达式~只能实现全部转化,批处理水平实在太低啦,求大神解答~~~灰常感谢

回复 6# CrLf


    感谢~~~辛苦啦~~~

TOP

回复 7# pcl_test


    感谢大神~~~已解决~~~能否帮我看一下最新的那个提问~~~~灰常感谢~~
  

PS:你哪人~请你吃饭吧~~if 你在西安的话~~~

TOP

本帖最后由 pcl_test 于 2016-1-6 20:43 编辑
  1. //&cls&cscript -nologo -e:jscript "%~f0"<$NR.txt>New_$NR.txt&pause & exit/b
  2. while(!WScript.StdIn.AtEndOfStream) {
  3.     var str = WScript.StdIn.ReadLine().replace(/(\w+)\s+(.+?)\s*$/,function($0,$1,$2){
  4.         return $1+' '+$2.replace(/\s+(?=\w)/g,',')
  5.     });
  6.     WSH.Echo(str);
  7. }
复制代码

TOP

回复 4# sweet惜缘


    之前没看你的文件,只按顶楼的空格处理,所以没效果,已修改

TOP

回复 2# gawk


额,原来是这样~~我只需要保证每一行还是一行~不要处理后170+行变成一行就郁闷了~~~请问大神应该怎么做~~~

TOP

回复 3# CrLf


    。。。结果出来没有变化,是哪里出现问题了呢??感谢

TOP

本帖最后由 CrLf 于 2016-1-6 20:04 编辑
  1. @mshta http://bathome.net/s/hta/^
  2.   type('$NR.txt')^
  3.   .split('\r\n')^
  4.   ._EACH(function(s){flag=0;return s.replace(/\s+(?=\w)/g,function(ss){return flag++?',':' '})})^
  5.   .join('\r\n')^
  6.   >$NR.new.txt
复制代码

TOP

你这个文件行与行之间没有空格,你看到的“空格”实际上是每一行的行尾有大量的tab导致编辑器在显示的时候换行了,你确定一下是否需要保留行尾的那么多tab吧。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

返回列表