У меня есть небольшая программа, написанная на js (, она запускается на локальном компьютере, а не в браузере ), которая ищет TXT-файлы в клиентских папках, а затем объединяет их в одну. В настоящее время пути выглядят так:
c:\root\\FTP\Customer\Orders\Client1
c:\root\\FTP\Customer\Orders\Client2
c:\root\\FTP\Customer\Orders\Client3
c:\root\\FTP\Customer\Orders\Client4
+100
Следующий код видит файлы, появляющиеся в каждой папке Client *.
var VariablePath = "c:\\root\\FTP\\Customer\\Orders"
Проблема возникла из-за того, что вышеуказанный путь должен быть расширен в описанный ниже способ:
c:\root\FTP\Customer\Orders\Client1\CSV
c:\root\FTP\Customer\Orders\Client2\CSV
c:\root\FTP\Customer\Orders\Client3\CSV
c:\root\FTP\Customer\Orders\Client4\CSV
+100
Мой вопрос: как сохранить путь в var VariablePath (или другим способом), чтобы загружались только файлы из последней папки (CSV), а не из папка Client *, как и раньше. Я пробовал много комбинаций, но ни одна не работала.
var VariablePath = "c:\\root\\FTP\\Customer\\Orders\\."
var VariablePath = "c:\\root\\FTP\\Customer\\Orders\\.\\"
var VariablePath = "c:\\root\\FTP\\Customer\\Orders\\.\\."
var VariablePath = "c:\\root\\FTP\\Customer\\Orders\\.\\CSV"
Пожалуйста, помогите изменить следующую программу:
var VariablePath = "c:\\root\\FTP\\Customer\\Orders."
var KMTPath = VariablePath
try
{
merge(KMTPath, "KMT");
}
catch(e) {
WriteErrorToLog(e, "KMT");
}
function WriteErrorToLog(e, org)
{
var today = new Date();
objFile.WriteLine ("<br><b>*******************************************************</b>");
objFile.WriteLine ("<br><b>An Error has occured during ToolBoss Processing of "+org+ " files at "+today+"</b>");
objFile.WriteLine("<br><b>"+e+"</b>")
objFile.WriteLine("<br><b>"+e.number & 0xFFFF+"</b>")
objFile.WriteLine("<br><b>"+e.description +"</b>")
objFile.Close();
}
function merge(path, org)
{
var today = new Date();
var NewFileName;
TempFSO = new ActiveXObject("Scripting.FileSystemObject");
DoesFileExist = ReportFileStatus("c:\\root\\FTP\\Customer\\mergelog_CSV.html")
if (DoesFileExist == 0)
{
objFSO = new ActiveXObject("Scripting.FileSystemObject");
objFile = objFSO.CreateTextFile("c:\\root\\FTP\\Customer\\mergelog_CSV.html", true);
objFile.Close();
}
else
objFSO = new ActiveXObject("Scripting.FileSystemObject");
objFile = objFSO.OpenTextFile("c:\\root\\FTP\\Customer\\mergelog_CSV.html", 8, true);
objFile.WriteLine ("<HTML> <HEAD><TITLE>ToolBoss FileMerge Log File</TITLE></HEAD><BODY>");
objFile.WriteLine ("<br><b>Awake on " + today + "....Checking for files under "+path+"</b>");
FilesExist = CheckForFiles(path);
if (FilesExist == 1)
{
if (org == "KMT")
{
var TempFileName = ""+ (today.getMonth()+1)+ today.getDate()+today.getYear()+today.getHours()+today.getMinutes()+today.getSeconds()+".txt"
var NewFileName = "c:\\root\\FTP\\Customer\\KMTORDERS_CSV_"+ TempFileName;
}
tempfile=TempFSO.CreateTextFile(NewFileName,true);
objFile.WriteLine ("<table border='1' width='50%'>");
objFile.WriteLine ("<tr><td bgcolor='#FFFF00'><h3>Folder/File</h3></td><td bgcolor='#00FFFF'><h3>Size</h3></td><td bgcolor='#FFFF00'><h3>Date Written</h3></td><td bgcolor='#00FFFF'><h3>Records</h3></td>");
objFile.WriteLine ("<tr>");
var fso, f, fc, s,f2;
var fso2, f2, f12, fc2, s2;
var filename;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(path);
fc = new Enumerator(f.SubFolders);
s = "";
NewString="";
for (; !fc.atEnd(); fc.moveNext())
{
NewString = fc.item();
s += fc.item();
s += "\n";
objFile.WriteLine ("<td bgcolor='#FFFF00'><b>" + NewString + "</b></td><td bgcolor='#00FFFF'> </td><td bgcolor='#FFFF00'> </td><td bgcolor='#00FFFF'> </td>");
fso2 = new ActiveXObject("Scripting.FileSystemObject");
f2 = fso2.GetFolder(fc.item());
fc2 = new Enumerator(f2.files);
s2 = "";
objFile.WriteLine ("</tr>");
for (; !fc2.atEnd(); fc2.moveNext())
{
objFile.WriteLine ("<tr>");
s2 += fc2.item();
s2 += "\n";
f2 = fso.GetFile(fc2.item());
objFile.WriteLine ("<td bgcolor='#FFFF00'> <font size='1'> " + ShowBaseName(fc2.item())+"</td><td bgcolor='#00FFFF'><font size='1'>"+f2.Size+"</td>"+"<td bgcolor='#FFFF00'><font size='1'>"+f2.DateLastModified+"</td>" +"</td></font>"+"<td bgcolor='#00FFFF'><font size='1'>"+CountRecordsInFile(fc2.item())+"</td>" +"</td></font>");
filename = fso.GetFile(fc2.item());
// WScript.echo("Filename="+filename+"....size="+filename.size);
if (filename.size > 0) {
MergeFile(fc2.item(),tempfile);
}
else if (filename.size == 0) {
fso.DeleteFile(filename);
objFile.WriteLine ("<td bgcolor='#FFFF00'> <font size='1'> ZERO LENGTH FILE(" + filename + ") deleted...</td><td bgcolor='#00FFFF'><font size='1'></td>"+"<td bgcolor='#FFFF00'><font size='1'></td>" +"</td></font>"+"<td bgcolor='#00FFFF'><font size='1'></td>" +"</td></font>");
}
}
objFile.WriteLine ("</tr>");
}
objFile.WriteLine ("</table>");
objFile.Writeline ("<br>Processing ends......."+CountRecordsInFile(NewFileName)+" Records have been written to file <b><i>"+NewFileName+"</i></b>");
objFile.WriteLine ("<br><b>------------------------------------------------------------------------------------------------------------------</b><br>");
objFile.WriteLine ("</BODY> </HTML>");
objFile.Close();
tempfile.Close();
var objFileCopy = new ActiveXObject("Scripting.FileSystemObject");
objFileCopy.CopyFile (NewFileName, "c:\\root\\FTP\\Customer\\KMTORDERS_CSV_"+ TempFileName);
}
else
{
objFile.WriteLine ("<br><b>NoFiles found.....Going to sleep....</b>");
objFile.WriteLine ("<br><b>------------------------------------------------------------------------------------------------------------------</b><br>");
objFile.WriteLine ("</BODY> </HTML>");
objFile.Close();
}
function CheckForFiles(filespec)
{
var fso, f, fc, s,f2;
var fso2, f2, f12, fc2, s2;
var fileexist;
fileexist=0
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(filespec);
fc = new Enumerator(f.SubFolders);
s = "";
NewString="";
for (; !fc.atEnd(); fc.moveNext())
{
NewString = fc.item();
s += fc.item();
s += "\n";
fso2 = new ActiveXObject("Scripting.FileSystemObject");
f2 = fso2.GetFolder(fc.item());
fc2 = new Enumerator(f2.files);
s2 = "";
for (; !fc2.atEnd(); fc2.moveNext())
{
s2 += fc2.item();
s2 += "\n";
fileexist = 1;
f2 = fso.GetFile(fc2.item());
}
}
return(fileexist);
}
function ShowBaseName(filespec)
{
var fso, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
s += fso.GetFileName(filespec);
return(s);
}
function CountRecordsInFile(filespec)
{
var fso, f, r, count;
var ForReading = 1, ForWriting = 2;
count=0;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile(filespec, ForReading);
while (!f.AtEndOfStream)
{
count++;
r = f.ReadLine();
}
f.Close( );
return(count);
}
function CreateTempFile()
{
var tfolder, tfile, tname, fname, TemporaryFolder = 2;
tfolder = TempFSO.GetSpecialFolder(TemporaryFolder);
tname = TempFSO.GetTempName();
tfile = tfolder.CreateTextFile(tname);
return(tfile);
}
function MergeFile(filespec,tempfile)
{
var ReadFile, WriteFile;
var ReadPTR, WritePTR;
var LineRead;
ReadFile = new ActiveXObject("Scripting.FileSystemObject");
ReadPTR = ReadFile.OpenTextFile(filespec, 1);
WriteFile = new ActiveXObject("Scripting.FileSystemObject");
LineRead = ReadPTR.ReadLine();
while (!ReadPTR.AtEndOfStream)
{
tempfile.WriteLine(LineRead);
LineRead= ReadPTR.ReadLine();
}
tempfile.WriteLine(LineRead);
ReadPTR.Close();
ReadFile.DeleteFile(filespec);
}
function ReportFileStatus(filespec)
{
var fso, s = filespec;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists(filespec))
s = 1;
else
s = 0;
return(s);
}
}