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

[文本处理] [已解决]批处理如何实现多行变一行?

本帖最后由 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

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "useback delims=" %%i in ("Your.txt") do <nul set /p=!str!&set "str=%%i|"
  4. <nul set /p=!str:~0,-1!)>$New.txt
复制代码
1

评分人数

TOP

回复 2# bailong360


    测试了一组出现结果竟是:36.93 |36.94 |36.98 |36.99|36.103
分隔符  |  前有空格

测试数据:


36.93
36.94
36.98
36.99
36.103

TOP

回复 3# wangdao6699
  1.     @echo off & setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (1.txt) do (
  3. if not "!str!"=="" <nul set /p=^|
  4. set str=%%a
  5. <nul set /p=!str: =!
  6. ))>new.txt
  7. pause
复制代码
你的文本本来带有空格的
1

评分人数

TOP

本帖最后由 wangdao6699 于 2015-4-12 18:32 编辑

回复 2# bailong360


    代码不错

TOP

来个VBS
  1. Dim fso,File1,File2
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. Set File1= fso.OpenTextFile(".\测试.txt", 1 , True)
  4. Set File2 = fso.CreateTextFile(".\结果.txt", 2 ,True)  
  5. Do While File1.AtEndOfStream <> True
  6.     strtmp = Trim(File1.ReadLine)
  7.     If Len(strtmp) > 0 Then str=str&strtmp&"|"
  8. loop
  9.     File2.Write Left(str,Len(str)-1)
  10.     File1.Close
  11.     File2.Close
  12. MsgBox "完成!"
复制代码
1

评分人数

TOP

回复 6# pcl_test


    感谢您分享,代码有效,学习了

TOP

返回列表