标题: [文本处理] 如何用批处理代码实现每二行存一个文件并把第一行存为该文件名? [打印本页]
作者: YYEnigma 时间: 2012-12-6 18:57 标题: 如何用批处理代码实现每二行存一个文件并把第一行存为该文件名?
韩剧_情定大饭店_中字全集.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
作者: weichenxiehou 时间: 2012-12-6 22:17
- @echo off
- for /f "delims=" %%a in (test.txt) do (
- set "str=%%a"
- set/a num+=1,row=num%%2
- setlocal enabledelayedexpansion
- if !row! equ 1 set "file=!str!"
- echo !str!>>!file!
- endlocal
- )
复制代码
作者: YYEnigma 时间: 2012-12-6 22:36
回复 2# weichenxiehou
老大感谢您的回复 首先没有存成TXT文件 其次存入的文件中也没有那行地址内容而只有第一行名字 仰望老大再修改一下 谢谢
作者: cxmzlxb 时间: 2012-12-6 22:42
回复 3# YYEnigma
弄不懂了,你的TXT没生成,那你的资料从哪来?
作者: weichenxiehou 时间: 2012-12-6 22:46
本帖最后由 weichenxiehou 于 2012-12-6 22:50 编辑
回复 3# YYEnigma
之前没说要生成txt啊。。。复制代码
作者: YYEnigma 时间: 2012-12-6 22:53
回复 5# weichenxiehou
老大不好意思 没说清楚 帮忙改一下吧 谢谢
作者: weichenxiehou 时间: 2012-12-6 22:54
回复 6# YYEnigma
如果文件名中有感叹号就会出现问题:- @echo off&setlocal enabledelayedexpansion
- set num=
- for /f "delims=" %%a in (test.txt) do (
- set "str=%%a"
- set/a num+=1,row=num%%2
- if !row! equ 1 set "file=!str!"
- echo !str!>>"!file:.rar=.txt!"
- )
复制代码
作者: YYEnigma 时间: 2012-12-6 22:59
回复 7# weichenxiehou
非常感谢老大的帮忙 现在可以了 不过您说文件名中有感叹号就有问题 哪不知这个修改会很复杂吗(就是有感叹号也不会有问题)如果复杂就算了
作者: weichenxiehou 时间: 2012-12-6 23:03
回复 8# YYEnigma
问题是:文件名中有感叹号的话会被去掉,暂时没找到解决办法。不过用三方工具倒是可以。。。
作者: YYEnigma 时间: 2012-12-6 23:09
回复 9# weichenxiehou
知道了 非常感谢你的帮助
作者: apang 时间: 2012-12-6 23:14
vbs,试试?- Set FSO = CreateObject("Scripting.FileSystemObject")
- Set File = FSO.OpenTextFile("test.txt",1)
- Do Until File.AtEndOfStream
- Str2 = File.ReadLine
- If Str1 <> "" Then
- Name = Left(Str1,InstrRev(Str1,".")) & "txt"
- Str = Str1 & vbCrLf & Str2
- FSO.CreateTextFile(Name,True).Write Str
- Str1 = "" : Str2 = ""
- End If
- Str1 = Str2
- Loop
- MsgBox "OK"
复制代码
作者: YYEnigma 时间: 2012-12-6 23:33
回复 11# apang
也感谢这位老师的回答
作者: BAT-VBS 时间: 2012-12-7 09:53
回复 9# weichenxiehou
我先来个gawk的- gawk "NR%2{f=$0;getline;print f\"\n\"$0 >f\".txt\"}" a.txt
复制代码
作者: 悬崖之树 时间: 2012-12-11 22:24
- @echo off & setlocal enabledelayedexpansion
- for /f %%i in (1.txt) do (
- set /a n+=1
- set /a m=!n!%%2+1
- if !m! equ 2 (
- echo %%i>%%i.txt
- set str=%%i.txt
- )
- if !m! equ 1 (
- echo %%i>>!str!
- )
- )
- pause
复制代码
作者: jains521 时间: 2012-12-13 20:33
- @echo off &setlocal enabledelayedexpansion
- for /f "delims=" %%i in (111.txt) do (
- set /a "n+=1, 0/(n%%2)" 2>nul &&set filename=%%i&echo %%i>"!filename!" ||echo %%i>>"!filename!"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |