[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 1# jave000
不用字符宽度的话,可以牵强的这么处理:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "tokens=*" %%i in ('findstr /br /c:" *[1-9][0-9]* " MOC922.txt') do (
  4.     set "str1=%%i"
  5.     set "str1=!str1:  =#!"
  6.     for /f "tokens=1-7 delims=#" %%a in ("!str1:# =#!") do echo,%%a,%%b,%%c,%%d,%%e,%%f,%%g
  7. ))>1.csv
  8. pause
复制代码
但是会带来一些问题,比如17行由于第4列为空白,就会导致后面各列依次前移。
1

评分人数

    • jave000: 路径是全C盘?技术 + 1

TOP

回复 3# jave000
/c:是findstr命令中的一个参数,而不是路径。参见:
http://bbs.bathome.net/thread-14682-1-1.html
1

评分人数

TOP

回复 1# jave000
cmd1152就是个极其活跃的小魔头!

TOP

回复 9# jave000
两个及两个以上的空白字符替换为英文逗号。

TOP

两种表达方法基本一样。前面是“空格+*”,表示行首可以有若干空格或没有空格均可,[1-9]表示空格后或行首必须有1-9中数字中的1个组成,[0-9]*表示前面的数字后面可以有0到若干数字,*后面实际还有个空格。
总的意思是:匹配行首由若干空格+若干数字(至少一个)+至少一个空格组合的行,或者行首由若干数字(至少一个)+至少一个空格组合的行。
更复杂一些的可参考:
http://www.bathome.net/thread-57570-1-1.html
你的文本过于复杂,个人觉得批处理有点勉为其难。还是想想其他途径。
1

评分人数

TOP

回复 19# jave000
moc922.txt:是如何产生的?把代码发上来看看。

TOP

回复 24# jave000
你是想保留文件名还是不保留?
如果要保留是和序号在一列还是单独一列?

TOP

回复 15# jave000
代码默认两个以上空格分为一列。

TOP

第一行的二三列分不开,第九行的七八列分不开
是因为它们之间只有一个空格,代码就识别不了,电脑不是人脑,识别不了。

TOP

回复 28# jave000
将下列代码放在5楼4-5行之间:
  1. set "str1=!str: m =  m !"
  2. set "str1=!str:0 3=0  3!"
复制代码
但我总觉得这样改有点牵强,也会有问题。先试试吧。
1

评分人数

TOP

回复 24# jave000
MOC922.txt改成了*.txt运行的话,增加一行代码:
  1. set "str1=!str1:.txt:=,!"
复制代码

TOP

回复 33# newswan
好像你记错了,列内有英文逗号,整列要加双引号;列内有双引号的,双引号字符要连续写两次,且整列再加双引号。

TOP

返回列表