找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31826|回复: 14

[文本处理] 如何用批处理代码实现每二行存一个文件并把第一行存为该文件名?

[复制链接]
发表于 2012-12-6 18:57:43 | 显示全部楼层 |阅读模式
韩剧_情定大饭店_中字全集.rar
http://www.t00y.com/file/8225530
韩剧_汉城别曲.rar
http://www.t00y.com/file/8225531
韩剧_玻璃鞋.rar
http://www.t00y.com/file/8224973
韩剧_白色巨塔.rar
http://www.t00y.com/file/8225557
韩剧_饼干老师星星糖+OST_中字全集.rar
http://www.t00y.com/file/8224955
韩剧_首尔武林传.rar
http://www.t00y.com/file/8224956
韩剧_香港特急_中字全集.rar
http://www.t00y.com/file/8224957
韩剧_鬣狗.rar
http://www.t00y.com/file/8224958
韩剧_鬼迷_中字全集.rar
http://www.t00y.com/file/8224959
韩剧_魂.rar
http://www.t00y.com/file/8224960
韩剧_魔女幼熙.rar
http://www.t00y.com/file/8224961
韩剧_魔术_中字全集.rar
http://www.t00y.com/file/8224962
韩剧_魔王.rar
http://www.t00y.com/file/8224963
发表于 2012-12-6 22:17:36 | 显示全部楼层

  1. @echo off
  2. for /f "delims=" %%a in (test.txt) do (
  3.   set "str=%%a"
  4.   set/a num+=1,row=num%%2
  5.   setlocal enabledelayedexpansion
  6.   if !row! equ 1 set "file=!str!"
  7.   echo !str!>>!file!
  8.   endlocal
  9. )
复制代码
 楼主| 发表于 2012-12-6 22:36:49 | 显示全部楼层
回复 2# weichenxiehou


    老大感谢您的回复 首先没有存成TXT文件 其次存入的文件中也没有那行地址内容而只有第一行名字 仰望老大再修改一下 谢谢
发表于 2012-12-6 22:42:52 | 显示全部楼层
回复 3# YYEnigma


    弄不懂了,你的TXT没生成,那你的资料从哪来?
发表于 2012-12-6 22:46:49 | 显示全部楼层
本帖最后由 weichenxiehou 于 2012-12-6 22:50 编辑

回复 3# YYEnigma
之前没说要生成txt啊。。。

  1. 发现问题,占楼编辑
复制代码
 楼主| 发表于 2012-12-6 22:53:49 | 显示全部楼层
回复 5# weichenxiehou


    老大不好意思 没说清楚 帮忙改一下吧 谢谢
发表于 2012-12-6 22:54:58 | 显示全部楼层
回复 6# YYEnigma
如果文件名中有感叹号就会出现问题:

  1. @echo off&setlocal enabledelayedexpansion
  2. set num=
  3. for /f "delims=" %%a in (test.txt) do (
  4.   set "str=%%a"
  5.   set/a num+=1,row=num%%2
  6.   if !row! equ 1 set "file=!str!"
  7.   echo !str!>>"!file:.rar=.txt!"
  8. )
复制代码

评分

参与人数 1技术 +1 收起 理由
YYEnigma + 1 万谢

查看全部评分

 楼主| 发表于 2012-12-6 22:59:35 | 显示全部楼层
回复 7# weichenxiehou


    非常感谢老大的帮忙 现在可以了 不过您说文件名中有感叹号就有问题 哪不知这个修改会很复杂吗(就是有感叹号也不会有问题)如果复杂就算了 
发表于 2012-12-6 23:03:38 | 显示全部楼层
回复 8# YYEnigma
问题是:文件名中有感叹号的话会被去掉,暂时没找到解决办法。不过用三方工具倒是可以。。。
 楼主| 发表于 2012-12-6 23:09:46 | 显示全部楼层
回复 9# weichenxiehou


    知道了 非常感谢你的帮助 
发表于 2012-12-6 23:14:23 | 显示全部楼层
vbs,试试?
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. Set File = FSO.OpenTextFile("test.txt",1)
  3. Do Until File.AtEndOfStream
  4.    Str2 = File.ReadLine
  5.    If Str1 <> "" Then
  6.       Name = Left(Str1,InstrRev(Str1,".")) & "txt"
  7.       Str = Str1 & vbCrLf & Str2
  8.       FSO.CreateTextFile(Name,True).Write Str
  9.       Str1 = "" : Str2 = ""
  10.    End If
  11.    Str1 = Str2
  12. Loop
  13. MsgBox "OK"
复制代码
 楼主| 发表于 2012-12-6 23:33:32 | 显示全部楼层
回复 11# apang


    也感谢这位老师的回答
发表于 2012-12-7 09:53:51 | 显示全部楼层
回复 9# weichenxiehou


我先来个gawk的
  1. gawk "NR%2{f=$0;getline;print f"\n"$0 >f".txt"}" a.txt
复制代码
发表于 2012-12-11 22:24:12 | 显示全部楼层
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f %%i in (1.txt) do (
  3.    set /a n+=1
  4.    set /a m=!n!%%2+1
  5.    if !m! equ 2 (
  6.      echo %%i>%%i.txt
  7.      set str=%%i.txt
  8.    )
  9.    if !m! equ 1 (
  10.      echo %%i>>!str!
  11.    )
  12. )
  13. pause
复制代码
发表于 2012-12-13 20:33:37 | 显示全部楼层
  1. @echo off &setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (111.txt) do (
  3.         set /a "n+=1, 0/(n%%2)" 2>nul &&set filename=%%i&echo %%i>"!filename!" ||echo %%i>>"!filename!"
  4. )
  5. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 20:16 , Processed in 0.023612 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表