标题: [文本处理] [已解决]批处理怎样实现每5行变一行? [打印本页]
作者: wangdao6699 时间: 2015-4-25 09:35 标题: [已解决]批处理怎样实现每5行变一行?
多记事本
A记事本名字为:木材.txt 其多行内容:
名称,柳木
产地,西南123
性质,轻cc36
特征,红色
价格类,低廉
名称,马尾松
产地,华南东
性质,纹理直36
特征,褐色色
价格属于,低廉
。。。。。。
B记事本名字为:塑料.txt 其内容
名称,强化玻璃
产地,西板3
性质,轻cc36
特征,透光
价格类,低廉
名称,树脂并369
产地,华南
性质,弹性兼顾
特征,泡棉
价格属于,便宜
。。。。。。。。
以,分隔符,将第一列变位替换成相应的记事本名字
木材.txt内容变为:
木材,柳木,西南123,轻cc36,红色,低廉
木材,马尾松,华南东,纹理直36,褐色色,低廉
.......
塑料.txt内容 变为
塑料,强化玻璃,西板3,轻cc36,透光,低廉
塑料,树脂并369,华南,弹性兼顾,泡棉,便宜
作者: bailong360 时间: 2015-4-25 10:08
本帖最后由 bailong360 于 2015-4-25 10:37 编辑
- @echo off
- setlocal enabledelayedexpansion
- for %%i in (*.txt) do (
- set n=0
- (for /f "delims=" %%j in (%%~si) do (
- set /a n+=1
- if !n!==1 (
- <nul set /p=%%~ni,%%j,
- ) else if !n!==5 (
- echo %%j
- ) else if !n!==6 (
- set n=0
- ) else <nul set /p=%%j,
- ))>tmp
- move /y tmp "%%~fi"
- )
复制代码
作者: wangdao6699 时间: 2015-4-25 10:20
回复 2# bailong360
感谢您回复,运行结果是多了第一列内容
作者: bailong360 时间: 2015-4-25 10:37
本帖最后由 bailong360 于 2015-4-25 11:07 编辑
回复 3# wangdao6699
貌似是编码格式的问题,在电脑上折腾的快晕了
修改后的代码看能不能成功
不能成功传个样本到百度云吧
作者: pcl_test 时间: 2015-4-25 11:11
- @echo off
- setlocal enabledelayedexpansion
- md "处理结果\" 2>nul
- for /f "delims=" %%a in ('dir /b *.txt')do (
- set n=0
- (for /f "tokens=1* delims=," %%b in ('type "%%a"')do (
- set "s=!s!%%c,"
- set /a n+=1
- if "!n!" equ "5" (echo,%%~na,!s:~,-1! & set n=0 & set s=)
- ))>"处理结果\%%a"
- )
- pause
复制代码
作者: wangdao6699 时间: 2015-4-25 11:37
回复 5# pcl_test
运行有效,非常感谢您,评不了分了。。。
作者: aipo 时间: 2015-4-26 21:04
对我也有用 感谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |