Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на JavaScript

  Все выпуски  

Азы и секреты программирования на JavaScript.


Информационный Канал Subscribe.Ru


Азы и секреты программирования на JavaScript N 30

Архив предыдущих выпусков: http://subscribe.ru/
Форум по скриптовым языкам: http://script.net.ru/

WSH сценарии и FTP

В самом начале выпуска хочу поблагодарить Всех подписчиков, кто активно помогает рассылке. Указывает на замеченные ошибки, подсказывает решения возникающих вопросов. При работе над кодом горизонтального меню особенно ценный совет прислал Олег Тарабрин (администратор сайта http://www.webber.ru/). Большое всем спасибо, всегда буду раз вашим откликам.

Сегодняшний выпуск посвящен работе со сценариями в качестве пакетных файлов Windows. Если Вы не получали первые выпуски рассылки, или просто забыли, что это такое, и как оно работает - исчерпывающую информацию по использованию сценариев в локальных системах в качестве пакетных файлов Вы найдете на script.net.ru в разделе WSH (на русском), и в разделе справка. Правда последнее от Микрософт, поэтому на английском.

Вот вам простая типовая задача: офис компании расположен в отдельном здании и компьютеру(компьютерам), размещенному(размещенным) в другом(других) здании(зданиях) необходимо ежедневно обмениваться оперативной информацией с центральным офисом. Конечно, можно ежедневно вечером или утром доставлять данные нарочным. Но тогда вопрос - "A зачем нам компьютеры???".

Предлагаемая схема обмена данными работает так: в центральном офисе настраивается FTP-сервер, через который и происходит обмен данными. В назначенное время на удаленных компьютерах стандартный планировщик задач выполняет сценариий JScript, который производит обмен файлами через FTP. Если у Вас нормальный ATX BIOS, то можно в назначенное время включить компьютер через установки BIOS, выполнить сценариий, и запланировать в конце выполнения задачи выключение машины при помощи какой-нибудь утилиты вроде ShoodDown. Полностью автоматичекий процесс.

Задача за малым - нужен сценарий:

////////////////////////////////////////////////////////////////////
//                                                                //
//           Обмен данными по FTP                                 //
//                                                                //
////////////////////////////////////////////////////////////////////

var TEConnection  = WScript.CreateObject("CuteFTPPro.TEConnection");
var Shell = WScript.CreateObject("WScript.Shell");
var fso = new ActiveXObject("Scripting.FileSystemObject");

//Каталог на локальной машине
strFolder = "C:\\SysTools";
// Каталог на FTP-сервере
TEConnection.RemoteFolder = "/PackR/OBMEN/IN";

//Cвойства соединения:
TEConnection.Host = "192.168.2.2"; //Адрес Вашего FTP
TEConnection.Login = "locftp";     //Логин на FTP
TEConnection.Password = "999";     //пароль
TEConnection.Protocol = "FTP";
TEConnection.Port = "21";
TEConnection.UseProxy = "OFF";
TEConnection.TransferType = "BINARY";
TEConnection.Localfolder = strFolder;

//Закачиваем два файла с FTP
dncopy("Ars_In.zip");
dncopy("Rek_In.zip");
//Передаем два файла на FTP
copyup("Ars_Out.zip");
copyup("Rek_Out.zip");

//Отключение от телефонной линии:
Shell.Run("C:\\SysTools\\scripts\\Dialerp.exe BREAK ftp01",0);

//Освобождаем память:
WScript.DisconnectObject(Shell);
WScript.DisconnectObject(TEConnection);
WScript.Quit(0);

//=========== функции ====================

//Получение файла с FTP
function dncopy(strFile) {
 if (TEConnection.RemoteExists(strFile))
 TEConnection.Download(strFile, strFolder +"\\"+strFile);
}
//Передача файла на FTP
function copyup(strFile) {
 strLocalFile = "C:\\SysTools\\" + strFile;
 if (fso.FileExists(strLocalFile))
 TEConnection.Upload(strLocalFile, strFile);
}

Чтобы этот сценарий работал необходимо выполнение двух дополнительных условиий.

  1. На компьютере должен быть установлен FTP-клиент CuteFTP Pro от GlobalSCAPE.
    Это благодаря модулю этой программы мы можем создать FTP соединение при помощи строки
    var TEConnection  = WScript.CreateObject("CuteFTPPro.TEConnection");
  2. Я не нашел метода JScript для созданного соединения, чтобы его разорвать. поэтому для разрыва соединения пришлось воспользоваться внешней утилиткой (сайт www.piafi.ru), которая запускается из командной строки с указанием имени разрываемого соединения:
    Shell.Run("C:\\SysTools\\scripts\\Dialerp.exe BREAK ftp01",0);
    Здесь ftp01 - это имя Dial-Up соединения, которое настраивается из папки "Мой компьютер" - "Удаленный доступ к сети". Это-же соединение должно быть указано в программе CuteFTP, как соединение по-умолчанию для подключения.

Конечно, не обязательно использовать именно CuteFTP, можно любую другую программу FTP-клиент. Важно только, чтобы она поддерживала работу со сценариями.

Что касается методов работы с файлами, то все их описания с короткими примерами Вы можете найти на сайте script.net.ru. Кроме того, здесь-же в новом, только-что открытом разделе СПРАВКА есть полный справочник и руководство от Микрософт по созданию сценариев с подробным оглавлением и алфавитным указателем из ключевых слов, база HTML-тегов, и справочник CSS. В общем все, что необходимо для создания Ваших сценариев как для WSH, так и для Веб-страниц.


Eсли Вы ищете качественный и недорогой web-хостинг, лично я рекомендую PeterHost.Ru. Российский, прекрасные каналы, сервис "на уровне".

Автор и ведущий рассылки И. Балезин
Лучший хостинг в Рунете

InterReklama Advertizing
Интерреклама. Интернет

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное