又一个无聊的脚本,呵呵
脚本的作用是把一个文件夹下的文本文件合成一个
5 X; u' |6 G3 M% j; D这个小东西的起因是我收集的一些技术资料,非常零散,个个不大,1K多点,有些甚至只有几行字1 L0 ^; C7 i+ q- y; _* }7 I
想把它们拼成一个文件,之间用分隔线隔开2 D0 Z+ g+ M& ]$ d) B- t! Y
写了好久,也知道了一点,脚本虽然功能比批处理强大,但有些时候,真的不如批处理来得方便1 V _; Q$ d9 Y( y) \1 @
下午我再试写一下批处理版的/ n, s% {7 [9 s, P& l
6 V! n) n( w! j0 L, Y2 T! D8 i
##############################################################+ ~# Q4 F, C# Z4 G0 I( e6 M
7 e4 w5 _& z0 i( X, n
var fso, wshshell, fld, fls, path, file, all;
) ]9 L/ b: H! c7 y2 p0 F0 v0 E) e3 e" _; h# H- C' R0 a
fso = new ActiveXObject("Scripting.FileSystemObject"); //新建一个文件处理对像,用来处理文件2 Y$ ?* h9 ^. N4 R0 {% C; [5 T
wshshell = WScript.CreateObject("WScript.shell");//建一个SHELL对象,用来最后执行写好的批处理,没办法,copyfile命令似乎不能合并文件) ~& v9 k& @+ }- m- `* i. a
path = WScript.arguments(0); //获取第一个参数. |3 O3 |* s8 t; E5 J7 _
fld = fso.GetFolder(path);//获取参数传递的文件夹
" G$ V% |! d; K4 h8 W fls = new Enumerator(fld.files); //获取文件夹中的文件列表集合
9 j; ~( d3 p# E' C. `$ `var backup; //因为会对每个文件进行处理,所以先做好备份
* Z5 \" E* t9 F backup = fso.CreateFolder(path+"[url=file://\\backup]\\backup[/url]");
- F! K9 `6 G! k! o8 K fso.CopyFile(path+"\\*.*", backup);+ |: f! W [! y0 o* n# f, B
/ v# s6 e6 p3 V1 P/ H$ y5 ~
/ o. ?9 v# c% n. o# V for (;!fls.atEnd();fls.moveNext()) //给每一个文件后面加上分隔线& B( u( h, B( w
{. K" L5 c Z# F6 w
file = fso.OpenTextFile(fls.item(),8);' G8 _( k, y* S( T. k9 {$ J
file.Writeline();
/ P5 [3 V' M. e file.Writeline();% j6 O2 m. h- l" b2 P" C
for(n=0; n<20; n++)' ~2 F f: P7 t- U1 A6 N8 g
{
/ R1 t, i: ]( h9 N. O file.Write("# # # # ");
( J6 {) s5 H1 z3 x( P0 Y1 J3 c}( x+ q: i: c0 M
file.Writeline();
1 v) q, d1 o( |0 Y file.Writeline();3 s5 ^. I4 _( ]% W
file.Close();
6 M+ Y/ @7 X0 E* o! F! x4 O }
. F f2 Y' x p& |$ j$ Tfile = path+"\*.txt"; //编写批处理,用copy命令将所有TXT文件合成一个
5 H+ R0 o0 l6 m( l) V9 N3 a3 qall = path + "\all.txt";6 v( E \" X2 [
ok= fso.CreateTextFile("c:\\ok.bat");0 f U6 i( Z- `* @& o
ok.Write ("copy ");+ V# D" u" g4 q; @9 y3 c4 P2 j9 Q
ok.Write(file); Y! G9 d! H. D# i0 h5 D
ok.Write(" ");
q. W$ w; b! S( q! ? ok.Write(all);
" J/ R& m: I5 N0 w: ~1 u ok.WriteLine();5 h9 }6 O6 Q1 V' ]8 M/ j
ok.WriteLine("del c:\\ok.bat");
6 o7 h* k# {6 V/ g, L" T- P ok.Close();
* Z% i4 j& Z; v5 G1 a( [wshshell.run ("c:\\ok.bat");//执行写好的批处理
- L. v, Z8 W% Z0 H1 J! a; `" G/ _: N1 q) u
[ 本帖最后由 北羊 于 2007-11-30 00:38 编辑 ]
搜索更多相关主题的帖子:
脚本