Windows Script Host надає користувачеві таку корисність, як ws-файл, це файли з розширенням .wsf (windows script file). Корисність полягає в тому, що в одному сценарії ви можете використовувати відразу кілька скриптових мов програмування (vbscript, jscript, perl або phyton). Давайте перейдемо безпосередньо до опису основних переваг ws-файлів (windows script file):
Як я вже сказав, можливість використовувати в одному сценарії кілька мов
- Підключення зовнішніх файлів
- Можливість викликати функції однієї мови в іншому
- Визначення кількох завдань в тілі сценарію
На відміну від js і vbs файлів, ws (windows script file) сценарії вимагають використання xml розмітки, яка. Давайте напишемо простий приклад, що б ви відразу побачили що і як:
В даному прикладі використовується кілька XML елементів:
- між цими тегами прописується код сценарію, мова визначається параметром language. В даному прикладі ми одночасно використовували синтаксис Jscript і VBScript.
Добре, тепер давайте спробуємо розширити можливості сценарію:
Тут у нас з'явився новий елемент
Тут ми використовували параметр // job сервера Windows Script Host. після двокрапки прописується ідентифікатор завдання і шлях до ws-файлу. У першому запуск проводиться в режимі консолі, а в другому - в стандартному віконному.
Тепер давайте подивимося на те, як відбувається підключення зовнішніх файлів для сценаріїв windows script file. Створіть попередньо файл hello.js з наступною рядком:
WScript.Echo ( "Це зовнішній файл");
Тепер в тому ж каталозі створіть ws файл з ім'ям src.wsf і пропишіть в ньому наступний код:
Тут атрибут src дозволяє підключити зовнішній сценарій, в нашому випадку це hello.js. Після запуску скрипта, з'являться два повідомлення.
Підключення зовнішніх файлів
Добре, тепе уявімо ситуацію, що у нас є сценарій (function.vbs), в якому прописана функція, що б її не копіювати в тіло сценарію windows script file, ми можемо просто увказать посилання на function.vbs і так викликати функцію. Файл function.vbs буде містити наступний код:
А в наш ws-файл (function.wsf) пропишемо наступне:
Тут ми з початок підключаємо файл function.vbs, в ньому прописана функція WSHInputBox, яка в свою чергу викликає функцію InputBox (підтримується тільки в мові VBScript). Зробивши таке перетворення, ми змогли викликати в тілі js коду функцію мови vbscript.
Способи обробки ws-файлів
Ті приклади що були вище, містять нестрогий синтаксис мови XML - НЕ передбачається виконання всіх вимог стандарту XML (реєстр символів, висновок атрибутів в подвійні лапки.)
Однак, якщо windows script file стане обростати зарезервованими для XML символами або словами як розмітки XML, то станеться збій. У такому випадку варто застосовувати строгу розмітку. Для того щоб задати режим суворої обробки сценарію, потрібно помістити елемент в самій першому рядку сценарію - ніяких інших символів або порожніх рядків перед ним бути не повинно. При такій обробці WS-файлу потрібно чітко слідувати всім правилам стандарту XML. Код сценарію повинен бути поміщений в секцію CDATA, яка починається з символів "". Наприклад: