使用JavaScript生成FTP脚本的示例代码

作者:纸飞机时间:2026-10-27 11:53:46浏览:83

本文介绍如何使用JavaScript脚本遍历本地文件夹,自动生成包含连接、目录切换及文件上传命令的FTP脚本。代码利用ActiveXObject创建文件系统对象,通过正则匹配文件夹名称,并结合白名单机制过滤特定目录,最终输出完整的FTP指令序列以便执行批量文件传输。

JavaScript生成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;
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");
}

作者最新文章