用Javascript来生成ftp脚本

来源:岁月联盟 编辑:exp 时间:2012-02-17

昨天闲着没事,又因为工作需要,写了一个脚本,用来做ftp。
    当然不是直接做ftp,而是产生一个ftp的脚本,供ftp命令使用。

    程序也很简单,就是遍历一下本地目录,然后产生一堆ftp命令。

    为了避免以后再做此类重复劳动,我记在这里。

    ----------------------------------------------------------

    function matchDemo(strFolderName)

    {

    var s;

    var re = /200/d{5}/ig;

    s = strFolderName.match(re);

    return(s);

    }

    function init()

    {

    strScript ="open 192.168.1.32 /n";

    strScript+="user sybase 111111 /n";

    strScript+="bin/n";

    strScript+="prompt/n";

    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; www.2cto.com

    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+="bye/n";

    WScript.Echo(strScript);

    }

    else

    {

    WScript.Echo("Bad Folder Name");

    }

 

摘自 黑黑博客