标题: [文本处理] [已解决]批处理如何实现多行变一行? [打印本页]
作者: wangdao6699 时间: 2015-4-12 14:43 标题: [已解决]批处理如何实现多行变一行?
本帖最后由 wangdao6699 于 2015-4-12 18:33 编辑
记事本内容如:
110:18
aaannnb
60:20
333369888
bat236
252.36.85
04 7A 68 65 6E 90 00
结果:
N行变成一行,以 | 作为分隔符
110:18|aaannnb|60:20|333369888|bat236|252.36.85|04 7A 68 65 6E 90 00
作者: bailong360 时间: 2015-4-12 15:02
- @echo off
- setlocal enabledelayedexpansion
- (for /f "useback delims=" %%i in ("Your.txt") do <nul set /p=!str!&set "str=%%i|"
- <nul set /p=!str:~0,-1!)>$New.txt
复制代码
作者: wangdao6699 时间: 2015-4-12 16:44
回复 2# bailong360
测试了一组出现结果竟是:36.93 |36.94 |36.98 |36.99|36.103
分隔符 | 前有空格
测试数据:
36.93
36.94
36.98
36.99
36.103
作者: 522235677 时间: 2015-4-12 18:04
回复 3# wangdao6699 - @echo off & setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (1.txt) do (
- if not "!str!"=="" <nul set /p=^|
- set str=%%a
- <nul set /p=!str: =!
- ))>new.txt
- pause
复制代码
你的文本本来带有空格的
作者: wangdao6699 时间: 2015-4-12 18:30
本帖最后由 wangdao6699 于 2015-4-12 18:32 编辑
回复 2# bailong360
代码不错
作者: pcl_test 时间: 2015-4-12 18:35
来个VBS- Dim fso,File1,File2
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set File1= fso.OpenTextFile(".\测试.txt", 1 , True)
- Set File2 = fso.CreateTextFile(".\结果.txt", 2 ,True)
- Do While File1.AtEndOfStream <> True
- strtmp = Trim(File1.ReadLine)
- If Len(strtmp) > 0 Then str=str&strtmp&"|"
- loop
- File2.Write Left(str,Len(str)-1)
- File1.Close
- File2.Close
- MsgBox "完成!"
复制代码
作者: wangdao6699 时间: 2015-4-12 19:21
回复 6# pcl_test
感谢您分享,代码有效,学习了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |