Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Option Explicit

' Функция для перевода строки из DOS- в Windows-кодировку

Function DosToWin(s)

Dim i,k,ss

 ss=""

 For i=1 To Len(s) ' Цикл по всем символам в строке

k = Asc(Mid(s,i,1)) ' Определяем ANSI-код i-го символа

' Изменяем код k на код соответствующего символа в

' Windows-кодировке

If (128 <= k) And (k <= 175) Then

k=k+64

ElseIf (224 <= k) And (k <= 239) Then

k=k+16

ElseIf k = 240 Then

k=168

ElseIf k = 241 Then

k=184

End If

ss=ss+Chr(k)

 Next

 DosToWin=ss '
Возвращаем преобразованную строку

End Function

'************* Начало *********************************************

Dim s,ArrS,i,ColStr ' Объявляем переменные

' Печатаем приглашение для ввода

WScript.StdOut.WriteLine "Вводите строки:"

s = WScript.StdIn.ReadAll ' Вводим строки с клавиатуры

WScript.StdOut.WriteBlankLines 3 ' Печатаем пустые строки

ArrS=Split(s,vbCrLf) ' Формируем массив из введенных строк

ColStr=UBound(ArrS)+1

' Печатаем введенные строки

WScript.StdOut.WriteLine "Всего ведено строк: " & ColStr

For i=1 To ColStr

 ' Преобразовываем введенные строки в Windows-кодировку

 ' и выводим их на экран

 WScript.StdOut.WriteLine i & ": " & DosToWin(ArrS(i-1))

Next

'************* Конец *********************************************/
 

Ввод строк в графическом режиме 

В сценариях VBScript в графическом режиме информацию можно вводить с помощью диалогового окна, создаваемого внутренней функцией

InputBox
(рис. 2.6).

Рис. 2.6. Диалоговое окно со строкой ввода

 Пример сценария, использующего функцию

InputBox
, представлен в листинге 2.18 (подробное описание параметров функции InputBox см. в приложении 1).

Листинг 2.18. Ввод одной строки с помощью функции InputBox (VBScript)

'*******************************************************************

'
Имя: InpBox.vbs

' Язык: VBScript

' Описание: Пример использования функции InputBox

'*******************************************************************

Option Explicit

Dim s,s1 ' Объявляем переменные

s1="Пример" & vbCrLf & "диалогового окна" & vbCrLf & "для ввода строки"

' Выводим диалоговое окно со строкой ввода на экран

s=InputBox(s1,"Диалоговое окно VBScript")

' Выводим диалоговое окно с введенной строкой

MsgBox "Было введено: " & s

'************* Конец *********************************************/

К сожалению, ни в языке JScript, ни в объектной модели WSH нет функции или метода, позволяющих напрямую создавать диалоговые окна со строкой ввода. Однако при помощи файлов сценариев с XML-разметкой, описанных в главе 3, функции языка VBScript (

InputBox
в частности) можно использовать внутри JScript-сценария (соответствующий пример приведен в листинге 3.11).

Получение свойств WSH и запущенного сценария

На практике часто бывает необходимо знать определенные атрибуты WSH (например, с помощью какого приложения-сервера был запущен сценарий) и сценария, работающего в данный момент (например, имя этого сценария или путь к каталогу, в котором он находится). Некоторые параметры WSH и исполняемого сценария можно определить непосредственно с помощью соответствующих методов объекта

WScript
:

полный путь к приложению-серверу (cscript.exe или wscript.exe);

имя каталога, в котором находится приложение-сервер;

номер используемой версии WSH;

полный путь к исполняемому сценарию;

имя исполняемого сценария.

Для проверки режима, в котором был запущен сценарий, можно предложить функцию

IsCScript
(ниже приведена реализация этой функции на языке JScript), которая будет возвращать
true
, если использовался хост cscript.exe (консольный режим), и
false
, если использовался wscript.exe (графический режим):

function IsCScript {

 //Проверка режима, в котором запущен сценарий

 return ("с"== WScript.FullName.toLowerCase.charAt(WScript.FullName.length - 11));

}

Как мы видим, вся работа функции

IsCScript
состоит в определении того, с какой буквы начинается имя приложения-сервера ("с" для cscript.exe или "w" для wscript.exe).

Полный путь к текущему каталогу, т.е. к каталогу, из которого был запущен сценарий, хранится в свойстве

CurrentDirectory
объекта
WshShell
.

Поделиться:
Популярные книги

Майами

Фишер Марк
Детективы:
триллеры
6.40
рейтинг книги
Майами

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

На границе империй. Том 9. Часть 3

INDIGO
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 3

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Мечник Вернувшийся 1000 лет спустя. Том 2

Ткачев Андрей Юрьевич
2. Вернувшийся мечник
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Мечник Вернувшийся 1000 лет спустя. Том 2

Телохранитель Генсека. Том 3

Алмазный Петр
3. Медведев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Телохранитель Генсека. Том 3

Наномашины, внучок! Том 2

Новиков Николай Васильевич
2. Чего смотришь? Иди книгу читай
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наномашины, внучок! Том 2

Шайтан Иван

Тен Эдуард
1. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван

Товарищ "Чума" 7

lanpirot
7. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 7

Эмиссар

Листратов Валерий
8. Ушедший Род
Фантастика:
боевая фантастика
аниме
попаданцы
7.50
рейтинг книги
Эмиссар

Государь

Мазин Александр Владимирович
7. Варяг
Фантастика:
альтернативная история
8.93
рейтинг книги
Государь

Бестужев. Служба Государевой Безопасности

Измайлов Сергей
1. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности

Наследие Маозари 5

Панежин Евгений
5. Наследие Маозари
Фантастика:
фэнтези
юмористическое фэнтези
5.00
рейтинг книги
Наследие Маозари 5

Бастард Бога (Дилогия)

Матвеев Владимир
Фантастика:
альтернативная история
5.11
рейтинг книги
Бастард Бога (Дилогия)