|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- function CBuildSource(Folder, Ext){
- this.Ext = Ext;
- this.fso = WScript.CreateObject("Scripting.FileSystemObject");
- this.Folder = this.fso.GetFolder(Folder);
-
- this.SourceCheckExtRegExp = new RegExp("^" + this.Ext + "$", "i");
-
- this.CheckExt = function(Folder){
- return this.fso.GetExtensionName(Folder.Name).match(this.SourceCheckExtRegExp);
- };
-
- this.GetSourceFoldersEnumerator = function(){
- return new Enumerator(this.Folder.SubFolders);
- };
- };
-
- function CBuilder(FolderName){
- this.fso = WScript.CreateObject("Scripting.FileSystemObject");
- this.WshShell = WScript.CreateObject("WScript.Shell");
- this.FolderExists = false;
-
- this.FolderName = FolderName;
- if (FolderName.length == 0){
- this.FolderName = ".";
- };
-
- this.GetNewFullFileName = function(FileName){
- if (!this.FolderExists){
- if (!this.fso.FolderExists(this.FolderName)){
- this.Folder = this.fso.CreateFolder(FolderName);
- this.FolderExists = true;
- }else{
- this.Folder = this.fso.GetFolder(this.FolderName);
- this.FolderExists = true;
- };
- };
- return this.fso.BuildPath(this.Folder.Path, this.fso.GetFileName(FileName));
- };
- this.GetCommandLine = function(SourceFolder, FileName){
- return "7za a -tzip \""+ FileName + "\" \"" + SourceFolder + "\\*.*\"" ;
- };
- this.ProcessFolder = function(Folder){
- var NewFileName = this.GetNewFullFileName(Folder.Name);
- var FolderFullName = Folder.Path;
- if (this.fso.FileExists(NewFileName)){
- this.fso.DeleteFile(NewFileName);
- };
- var CommandLine = this.GetCommandLine(FolderFullName, NewFileName);
- WScript.Echo(CommandLine);
- var Pipe = this.WshShell.Exec(CommandLine);
- while(!Pipe.StdOut.AtEndOfStream){
- WScript.StdOut.WriteLine(Pipe.StdOut.ReadLine());
- };
- }
- };
-
- var Source = new CBuildSource(".", "zmp");
- var Builder = new CBuilder(".\\.bin");
- var oFiles = Source.GetSourceFoldersEnumerator();
- for (; !oFiles.atEnd(); oFiles.moveNext()){
- var oFile = oFiles.item();
- if (Source.CheckExt(oFile)){
- Builder.ProcessFolder(oFile);
- };
- };
|