程式也很簡單,就是遍曆一下本地目錄,然後產生一堆ftp命令。
複製代碼 代碼如下:
function matchDemo(strFolderName)
{
var s;
var re = /200d{5}/ig;
s = strFolderName.match(re);
return(s);
}
function init()
{
strScript ="open 192.168.1.32 n";
strScript+="user sybase 111111 n";
strScript+="binn";
strScript+="promptn";
strScript+="cd /hisdata/olddata n";
dicWhiteList = new ActiveXObject("Scripting.Dictionary");
dicWhiteList.add ("20051205_pihou", "");
dicWhiteList.add ("20051206_pihou", "");
dicWhiteList.add ("20060701_pihou", "");
}
function EnumSubFolder(oSubFolder)
{
var eFolders=new Enumerator(oSubFolder.SubFolders);
var s="";
if(eFolders.atEnd())
{
return s;
}
else
{
for (; !eFolders.atEnd(); eFolders.moveNext())
{
s+="lcd "";
s+=eFolders.item();
s+=""n";
s+="mput *.*n";
}
return s;
}
}
function checkList(strToBeChecked)
{
return !dicWhiteList.Exists(strToBeChecked);
}
var strScript,dicWhitList;
var sFolderPath="e:";
var oFs=new ActiveXObject("Scripting.FileSystemObject");
init();
if (oFs.FolderExists(sFolderPath))
{
//WScript.Echo("valid folder");
var oFolders=oFs.GetFolder(sFolderPath);
var eFolders=new Enumerator(oFolders.SubFolders);
if(eFolders.atEnd())
{
strScript += "mkdir "";
strScript += oFs.GetBaseName(sFolderPath);
strScript += ""n";
}
else
{
for (; !eFolders.atEnd(); eFolders.moveNext())
{
strTargetFolderName=matchDemo(eFolders.item()+"");
if(strTargetFolderName==null || checkList(oFs.GetBaseName(eFolders.item())))
continue;
strTmpFolderName="""+oFs.GetBaseName(eFolders.item())+""";
strScript += "mkdir "
strScript += strTargetFolderName;
strScript += "n";
strScript += "cd ";
strScript += strTargetFolderName;
strScript += "n";
strScript += EnumSubFolder(eFolders.item());
strScript += "lcd "
strScript += eFolders.item();
strScript += "n";
strScript += "mput *.*n";
strScript += "cd nlcd n";
}
}
strScript+="byen";
WScript.Echo(strScript);
}
else
{
WScript.Echo("Bad Folder Name");
}