中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 19:43
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [收集思路]把信息之间的n个空格替换为1个跳格
可打印版本  2,426 / 15
第1楼 523066680 发表于 2009-10-07 16:28
银牌会员 发帖 1,133 积分 2,362
[收集思路]把信息之间的n个空格替换为1个跳格
工作中得到一份电子料单,部分内容如下:

电阻 100K R0603 1
插脚电容 100uF/16V 6x3 2
电容 104 C0603 3
电容 105 C0603 1
贴片二三极管 2SN3904 SOT-23 3


其中,第一列为物料名称,第二列为规格,第三列为封装,第四列为数量。
但是它们之间是用n个空格区分的,实际料单很长,要导入excel表格并
按excel的方式分列(excle用跳格符作为分列的标记)的话,可能要一个个地
去空格,换tab,纯体力活啊~

感觉当成批处理题目做的话还蛮适合~ 我就当题目发了,顺便看看有哪些
好思路

假定上面给出的料单名为 list.txt
现要求用批处理对该料单进行整理,把数据之间的空格换成1个跳格符
并直接重定向生成结果文件: result.xls (没装excel的 生成【result.x】也行)


(跳格符发上来好像会变成连续空格吧,大家用文字表示好了,当然如果
有办法直接发的话,就教教我了。)

[ Last edited by 523066680 on 2009-10-7 at 16:38 ]
第2楼 523066680 发表于 2009-10-07 17:07
银牌会员 发帖 1,133 积分 2,362
在bathome进程,seter已经给出了用
for tokens=1-3的办法,%%a跳格%%b跳格%%c 重定向出结果。
但是列数被确定了。

现题目升级,列数未知。

[ Last edited by 523066680 on 2009-10-7 at 18:01 ]
第3楼 523066680 发表于 2009-10-07 18:54
银牌会员 发帖 1,133 积分 2,362
今天bathome真热闹,一下子就刷了一长串……
第4楼 Hanyeguxing 发表于 2009-10-07 19:48
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂


好象这个方法处理的太慢了

[ Last edited by Hanyeguxing on 2009-10-8 at 04:37 ]
第5楼 terse 发表于 2009-10-07 20:57
银牌会员 发帖 946 积分 2,404
字符串应该不含空格吧
第6楼 netbenton 发表于 2009-10-07 21:22
银牌会员 发帖 752 积分 1,916 来自 广西
@echo off&setlocal enabledelayedexpansion
set "Tab= "这里跳格
(for /f "tokens=*" %%i in (list.txt) do (
set str=%%i
set str=!str: = %tab%!
set str=!str:%tab% =!
echo;!str: =!
))>result.x
pause

[ Last edited by netbenton on 2009-10-7 at 19:25 ]
第7楼 523066680 发表于 2009-10-07 21:28
银牌会员 发帖 1,133 积分 2,362
谢谢各位,学习了^_^

[ Last edited by 523066680 on 2009-10-7 at 21:30 ]
第8楼 zh159 发表于 2009-10-07 23:09
金牌会员 发帖 1,467 积分 3,687
按 6 楼netbenton的方法,把TAB跳格改为“,”,输出>result.x改为>result.csv,就可以直接双击打开后进入分列好的excel列表,另存为电子表格文件

PS:前提是必须是正常安装的OFFICE
第9楼 523066680 发表于 2009-10-08 10:47
银牌会员 发帖 1,133 积分 2,362
前辈出马就是不一样~ 学习学习。
第10楼 slore 发表于 2009-10-08 12:18
铂金会员 发帖 2,478 积分 5,212
如果存在 空格空格
替换 空格空格 为 空格
重复
第11楼 Hanyeguxing 发表于 2009-10-08 17:03
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
还可以对每行逐个字符解析,第一个空格输出为制表符,通过set /a或if defined来实现后面的空格不输出。
第12楼 3742668 发表于 2009-10-09 15:34
荣誉版主 发帖 718 积分 2,013
如8L所说,转换为csv文件是可以直接用OFFICE打开的。
另外,利用Excel中的"数据","导入外部数据",然后选择要导入的文件,按照提示是可以被Excel识别的。
好久好久没来了,也来练练手(不涉及特殊字符,转换为逗号):
第13楼 3742668 发表于 2009-10-09 18:31
荣誉版主 发帖 718 积分 2,013
冷清许多了啊,WillSort,无奈何,都不来了吗?
一部《特种部队》都看完了也没引出玉来,再来一个吧:


[ Last edited by 3742668 on 2009-10-9 at 18:32 ]

附件
xx.rar (476 bytes)
第14楼 HAT 发表于 2009-10-09 19:17
版主 发帖 5,017 积分 9,023
WillSort,无奈何确实好几年没有出现过了
第15楼 523066680 发表于 2009-10-09 19:31
银牌会员 发帖 1,133 积分 2,362
3742668
版主改成txt的附件嘛,可以直接打开看并复制,压缩包要解压的哦。
yes……终于有崇拜的前辈来回帖了。

下载附件了,压缩包也有压缩包的好~ 那就压缩包了。

[ Last edited by 523066680 on 2009-10-9 at 19:35 ]
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023