if wscript.arguments.count <> 2 then usage if instr(wscript.arguments(0),"?") then usage sSource=wscript.arguments(0) sDest=wscript.arguments(0) sNum=wscript.arguments(1) splitfile sSource,sDest,sNum Sub SplitFile(sSourceFile,sDestFile,iNumFiles) 'Splits source file into iNumFiles destination files all starting with name sDestFile and a number. cForWriting = 2 cForReading = 1 set oFSrt=CreateObject("Scripting.FileSystemObject") if oFSrt.FileExists(sSourceFile) then 'Read lines of file into array aLines ix=0 set oSourcert=oFSrt.OpenTextFile(sSourceFile, cForReading) do while oSourcert.AtEndOfStream<>true sLinefta=oSourcert.ReadLine Redim Preserve aLines(ix) aLines(ix)=sLinefta ix=ix+1 loop Set oSourcert=Nothing 'Write New files iLinesPerFile=int(ix/iNumFiles) 'Start numbering file names at 1 iThisFileNum=1 'Come up with new file name. Put number before extension if dot in file. if instr(sDestFile,".") then aTmp=split(sDestFile,".") sNewFile=aTmp(0)&iThisFileNum if IsArray(aTmp) then for iTmp=1 to ubound(aTmp) sNewFile=sNewFile&"."&aTmp(iTmp) next end if else sNewFile=sDestFile&iThisFileNum end if wscript.echo "Writing file "&sNewFile&"..." 'If there aren't enough lines to create files, copy file into *.1 if iLinesPerFile < 1 then Set oSourcert=oFSrt.GetFile(sSourceFile) oSourcert.copy(sNewFile) Set oSourcert=Nothing wscript.quit end if if oFSrt.FileExists(sNewFile) then set oFilert=oFSrt.GetFile(sNewFile) set oStreamrt=oFilert.OpenAsTextStream(cForWriting) else set oStreamrt=oFSrt.CreateTextFile(sNewFile,True) end if for ix=0 to ubound(aLines) sLine=aLines(ix) oStreamrt.WriteLine (sLine) 'Start new file if ix goes evenly into total number of lines if (CINT(iThisFileNum) < CInt(iNumFiles)) then if iLinesPerFile < 1 then wscript.quit if (ix+1) mod iLinesPerFile=0 then set oFilert=Nothing set oStreamrt=Nothing iThisFileNum=iThisFileNum+1 'Come up with new file name put number before extension if dot in file. if instr(sDestFile,".") then aTmp=split(sDestFile,".") sNewFile=aTmp(0)&iThisFileNum if IsArray(aTmp) then for iTmp=1 to ubound(aTmp) sNewFile=sNewFile&"."&aTmp(iTmp) next end if else sNewFile=sDestFile&iThisFileNum end if wscript.echo "Writing file "&sNewFile&"..." if oFSrt.FileExists(sNewFile) then set oFilert=oFSrt.GetFile(sNewFile) set oStreamrt=oFilert.OpenAsTextStream(cForWriting) else set oStreamrt=oFSrt.CreateTextFile(sNewFile,True) end if end if end if next else wscript.echo "File "&sSourceFile&" cannot be found." end if set oFilert=nothing set oStreamrt=Nothing set oFSrt=Nothing end Sub Sub Usage wscript.echo "Usage:" wscript.echo wscript.echo "cscript splitfile.vbs " wscript.echo wscript.echo "Will split file into ." wscript.quit End Sub