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

[文本处理] [已解决]批处理如何把多行文本合并为一行?

本帖最后由 狗屁不通 于 2012-8-14 12:27 编辑

10:18
我有一个问题。。。_百度知道
10:19
雅虎雅虎雅虎
10:20
奥运会怎么不让我参加?
10:21
bathome我爱你

如何把第二行放到第一行后边?就是变成:
10:18我有一个问题。。。_百度知道
10:19雅虎雅虎雅虎
10:20奥运会怎么不让我参加?
10:21bathome我爱你

在下左想右想上想下想,什么都想不出来。。。还望赐教!

本帖最后由 apang 于 2012-8-13 22:37 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (1.txt) do (
  3.   if defined a echo,!a! %%a
  4.   set/a n+=1,m=n%%2
  5.   if "!m!"=="0" (set a=) else set "a=%%a"
  6. ))>2.txt
复制代码
1

评分人数

    • 狗屁不通: 现在才知道有评分功能,汗! 莫见怪、莫见 ...技术 + 1

TOP

本帖最后由 狗屁不通 于 2012-8-14 00:41 编辑

回复 2# apang


    感谢!
我还想请教一个问题:代码第三行。if defined a echo,!a! %%a,  我认真看了http://www.bathome.net/thread-2050-1-1.html,还是非常不明白
还望指教^-^

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (1.txt) do (
  3.   if defined a echo,!a! %%a
  4.   Rem 若定义了变量a,显示变量a及%%a的值
  5.   set/a n+=1,m=n%%2
  6.   Rem 变量n每循环一次自加1,变量m是求n的模(也就是奇偶判断)
  7.   if "!m!"=="0" (set a=) else set "a=%%a"
  8.   Rem 如若偶数行,将变量a赋空值;奇数行,将%%a的值赋给变量a
  9. ))>2.txt
复制代码
第一次for循环,变量a没有定义,if defined条件为假,echo,!a! %%a不被执行。此时变量n的值为1,m为1,最后赋给变量a的值为10:18
第二次for循环,if defined条件为真,执行echo,!a! %%a(a值为10:18,%%a为"我有一个问题。。。_百度知道"),此时变量n的值为2,m为0,最后赋给a的值为空。
第三次、第4次...以此类推。

TOP

回复 4# apang


    哈哈,再次感谢!

TOP

返回列表