Board logo

标题: 求功能的实现:文件信息追加^_^谁会做呢?谁实现的最容易 [打印本页]

作者: wangbadan     时间: 2006-11-16 10:53    标题: 求功能的实现:文件信息追加^_^谁会做呢?谁实现的最容易

求功能的实现:文件信息追加^_^谁会做呢?谁实现的最容易呢?
两个都能做出来吗?

功能一:
将所选目录下的所有文件进行追加,生成一个新文件。
例:
zuijia.bat  .  new.txt
就把当前目录下的所有文件(不限扩展名)的信息都保存到了new.txt文件里了。

功能二:
将所选目录下的所有文件进行追加,生成一个新文件;
条件是:每个文件都有一个“Data”关键字(占一行),“Data”之前的信息不予考虑,要将“Data”之后的信息进行追加。
例:
zuijia2.bat  .  new.txt
就把当前目录下的所有文件(不限扩展名)“Data”关键字后的信息都保存到了new.txt文件里了。
作者: namejm     时间: 2006-11-16 11:18
  关于把追加文件到另一个文件中去,可以用 copy 中的 + 来实现,请看帮助信息:
将一份或多份文件复制到另一个位置。

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
     [+ source [/A | /B] [+ ...]] [destination [/A | /B]]
  ……
要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或 file1+file2+file3 格式)。
  对于功能一,因为你要把所有文件的信息都保存到new.txt中,但是你没有交代究竟是文件的什么信息:文件的内容?创建的时间?文件的大小?……所以无法给出具体代码。

  对于功能二,用 for 语句配合 findstr 的正则表达式应该不难办到。时间关系,暂时不写具体代码了,哪位有空先来写一下吧^_^
作者: 3742668     时间: 2006-11-16 13:14
part 1:
@echo off
    type "%~1\*.*" >%~2
注意事项:
如果文件最后一行后面没有回车会导致前一个文件的末尾行与后一个文件首行位于同一行。解决方法为:for %%i in (.) do echo.>>"%%i"


part 2:
@echo off
for /f "delims=: tokens=1,2" %%i in ('findstr /nrc:"^Data$" "%~1\*.*"') do more +%%j %%i 1>>"%~2"
注意事项:
1.Data区分大小写且该行没有其它任意字符。(也可以自行修改findstr参数以适应不同要求)
2.文件中只能出现一次Data。当然,可以自行修改代码扩充功能。
作者: wangbadan     时间: 2006-11-17 01:12    标题: 顶上去

顶上去
作者: wangbadan     时间: 2006-11-17 04:14    标题: 是文件中的内容

是文件中的内容
作者: wangbadan     时间: 2006-11-17 06:49    标题: 哎呀!3楼高手啊!!!

哎呀!3楼高手啊!!!如此简短的代码就实现了功能啊!!
作者: hxuan999     时间: 2006-11-23 03:28
3742668版主果然是个高手呀.
作者: ccwan     时间: 2006-11-23 03:32
楼上兄弟灌水够快的。n多帖子^_^
作者: electronixtar     时间: 2006-11-23 06:58
那我也来水一个