标题: 怎样复制指定内容到指定文件里去
[打印本页]
作者: namejm
时间: 2006-3-31 21:55
标题: 怎样复制指定内容到指定文件里去
WinXP下,想复制1.txt第三行之后的所有文本内容到一个指定的文本文件中去,请问如何实现?
作者: 3742668
时间: 2006-4-1 07:50
for /f "skip=3 tokens=*" %i in (1.txt) do @echo %i >>指定文件.txt
如果在批处理中使用将%i更改为%%i
作者: namejm
时间: 2006-4-1 12:59
那如果只要其中的几行呢?比如一个文本文件有100行,现在只需要其中的20~25行和30行之后的内容,该如何编写呢?
另外,如果想让提取后的文件内容格式与原文件格式保持一致,比如在35行到40行之间有空行,并且有文字的行行首都有空格,该如何实现?
[
Last edited by namejm on 2006-4-1 at 13:14 ]
作者: chenhui530
时间: 2006-4-1 16:50
用批处理实现起来应该很复杂用VBS来就简单很多
作者: Climbing
时间: 2006-4-1 19:07
试试Horst的Lmod程序。
作者: 无奈何
时间: 2006-4-2 00:55
你可以尝试用 sed 解决一下
sed -n "3,$p" 1.txt >temp.txt
sed 下载地址:
http://www.student.northpark.edu/pemente/sed/gsed407x.zip
作者: namejm
时间: 2006-4-2 12:44
想不借助第三方软件,仅通过DOS批处理来实现,会很复杂么?
作者: 3742668
时间: 2006-4-2 12:45
同意4楼。
with CreateObject("SAFRCFileDlg.Fileopen")
.openfileopendlg
if not len(trim(.filename)) = 0 then
oldfilename = .filename
else
msgbox "没有选择文件!"
wscript.quit
end if
end with
newfilename = left(oldfilename,len(oldfilename) - 4) & "cxs" & right(oldfilename,4)
number1 = inputbox("输入起始行号:")
number2 = inputbox("输入行数:")
with createobject("scripting.filesystemobject")
set rfile = .opentextfile(oldfilename,1,true)
set wfile = .opentextfile(newfilename,2,true)
for i = 1 to number1
rfile.skipline
next
for j = 1 to number2
str = rfile.readline
wfile.writeline str
next
end with
保存为 文件处理.vbs 然后双击运行,大致可以满足你的要求。当然,你也可以在批处理里面把代码写到一个vbs文件达到批处理的效果,如果那样的话可以把前面的对话框部分去掉,再加上参数。唉,应该用adodb的,可惜忘记了.