| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Скрипт на JScript - помогите исправить ошибку |
| Автор: Гость_Сергей 1.6.2004, 14:06 |
| Помогите исправить ошибку в скрипте написаном на JScript. Так вот ошибка заключается в том, что в операционной системе Windows 98 при выполнении моего скрипта происходит ошибка: ПУТЬ НЕ НАЙДЕН А вот в Windows XP никакой ошибки нет. Ошибка происходит из-за того, что в Win98 нет такой папки C:\windows\system32\drivers\etc\ (нет папки etc), а вот в XP она есть. Но я никак не могу придумать как избежать этой ошибки т.е. я хочу сделать скрипт, который без ошибки бы работал как в 98, так и в XP. Вот код скрипта: ================================================== wsh=new ActiveXObject("Wscript.Shell"); var windir=wsh.ExpandEnvironmentStrings("%WINDIR%"); var FSO = new ActiveXObject("Scripting.FileSystemObject"); if (FSO.FileExists(windir+"\\system32\\drivers\\etc\\protocol")); { var f = (FSO.OpenTextFile(windir+"\\system32\\drivers\\etc\\protocol", 8, true)); f.WriteLine ("здесь текст который надо добавить"); f.Close(); } { var s = (FSO.OpenTextFile(windir+"\\protocol", 8, true)); s.WriteLine ("здесь текст который надо добавить"); s.Close(); } ========================================================= Этот скрипт должен находить файл protocol и дописывать в него данные. Но проблема в том, что в Windows 98 этот файл (protocol) лежит в корневой папке Windows, а в XP он лежит в windows\system32\drivers\etc\ Но скрипт может запускаться и под win98 и под XP и под ME, и под 2000, поэтому ошибки недопустимы. Я вот не могу придумать как сделать так, чтобы скрипт определил в какой папке находится файл protocol. Как видите по моему коду скрипт проверяет наличие файла protocol в папке windir+"\\system32\\drivers\\etc\\ но вот в Win 98 на этом этапе скрипт выдает ошибку, так как такой папки в Win 98 нет. Подскажите что можно придумать чтобы скрипт сам определил, в какой папке он должен изменить файл (protocol) в зависимости от ОС. Может можно так-то избежать этой ошибки и заставить скрипт выполнится до конца???? Помогите исправить скрипт и заставьте его работать без ошибки ПУТЬ НЕ НАЙДЕН Всем заранее спасибо за помощь. |
| Автор: GoodBoy 1.6.2004, 14:40 |
| Если файл для конкретной ОС лежит в известной папке, то почему бы не опредилять версию ОС и в зависимости от нее читать из той или иной папки?? |
| Автор: Гость_Сергей 1.6.2004, 19:51 |
| хорошее предложение... только как бы его реализовать |
| Автор: GoodBoy 2.6.2004, 10:43 |
| Я к сожалению не работал с ActiveXObject, но уверен, что там есть какая-нить функция для опредиления версии системы!!! |
| Автор: Gold Dragon 2.6.2004, 12:15 |
| А navigator.userAgent не поможет определить ОС? Только XP, кажется, определяется как NT 5.1 |
| Автор: Sardar 5.6.2004, 14:15 | ||
| Наконец появилось время, сори за паузу... Так, про navigator, window и прочие обьекты клиентского JS забываем - тут вопрос не клиентского JS. Сергей твой код не имеет смысла, ощущение что тебе срочно надо написать скрипт, но до этого ты никогда JS в глаза не видел. Читай это до конца: http://wdh.suncloud.ru/js01.htm#ref3 Вот этот код будет работать правильно на любой машине... Вместо копирования участков кода напиши одну функцию.
|
| Автор: Guest 5.6.2004, 23:43 |
| Спасибо всем за помощь я уже сделал так что работает без ошибки в любой операционной системе. |