标题: [文本处理] [已解决]批处理如何把多行文本合并为一行? [打印本页]
作者: 狗屁不通 时间: 2012-8-13 19:03 标题: [已解决]批处理如何把多行文本合并为一行?
本帖最后由 狗屁不通 于 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:10
本帖最后由 apang 于 2012-8-13 22:37 编辑
- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (1.txt) do (
- if defined a echo,!a! %%a
- set/a n+=1,m=n%%2
- if "!m!"=="0" (set a=) else set "a=%%a"
- ))>2.txt
复制代码
作者: 狗屁不通 时间: 2012-8-14 00:38
本帖最后由 狗屁不通 于 2012-8-14 00:41 编辑
回复 2# apang
感谢!
我还想请教一个问题:代码第三行。if defined a echo,!a! %%a, 我认真看了http://www.bathome.net/thread-2050-1-1.html,还是非常不明白
还望指教^-^
作者: apang 时间: 2012-8-14 09:06
- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (1.txt) do (
- if defined a echo,!a! %%a
- Rem 若定义了变量a,显示变量a及%%a的值
- set/a n+=1,m=n%%2
- Rem 变量n每循环一次自加1,变量m是求n的模(也就是奇偶判断)
- if "!m!"=="0" (set a=) else set "a=%%a"
- Rem 如若偶数行,将变量a赋空值;奇数行,将%%a的值赋给变量a
- ))>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次...以此类推。
作者: 狗屁不通 时间: 2012-8-14 12:23
回复 4# apang
哈哈,再次感谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |