Script works on Win 7 but Not Server 2003
I have this script working, as was posted in the guides section, to check if a file exists. It works fantastically on Windows 7, but on server 2003 it will never return if the file is found. Any ideas?
Here is the script:
Here is the script:
var FILEPATH = "../zfinance/TSA"; // Session to connect to var SESSION = "someplace@somewhere.com"; // Path to winscp.com var WINSCP = "c:\\program files\\winscp\\winscp.com"; var filesys = WScript.CreateObject("Scripting.FileSystemObject"); var shell = WScript.CreateObject("WScript.Shell"); var logfilepath = filesys.GetSpecialFolder(2) + "\\" + filesys.GetTempName() + ".xml"; var p = FILEPATH.lastIndexOf('/'); var path = FILEPATH.substring(0, p); var filename = FILEPATH.substring(p + 1); var exec; // run winscp to check for file existence exec = shell.Exec("\"" + WINSCP + "\" /log=\"" + logfilepath + "\""); exec.StdIn.Write( "option batch abort\n" + "open \"" + SESSION + "\"\n" + "ls \"" + path + "\"\n" + "exit\n"); // wait until the script finishes while (exec.Status == 0) { WScript.Sleep(100); WScript.Echo(exec.StdOut.ReadAll()); } if (exec.ExitCode != 0) { WScript.Echo("Error checking for file existence"); WScript.Quit(1); } // look for log file var logfile = filesys.GetFile(logfilepath); if (logfile == null) { WScript.Echo("Cannot find log file"); WScript.Quit(1); } // parse XML log file var doc = new ActiveXObject("MSXML2.DOMDocument.6.0"); doc.async = false; doc.load(logfilepath); doc.setProperty("SelectionNamespaces", "xmlns:w='http://winscp.net/schema/session/1.0'"); doc.setProperty("SelectionLanguage", "XPath"); var nodes = doc.selectNodes("//w:file/w:filename[starts-with(@value, '" + filename + "')]"); if (nodes.length > 0) { WScript.Echo("File found"); // signalize file existence to calling process; // you can also continue with processing (e.g. downloading the file) // directly from the script here WScript.Quit(0); } else { WScript.Echo("File not found"); //this is always the result on jack.ser WScript.Quit(1); }