Обмен данными между WSH и BAT

WSH скрипты. Полезное.

Обмен данными между WSH и BAT

Рассмотрим случай, когда данные передаются скрипту из bat файла и результат обработки получают обратно в bat / cmd файле. Возможно вы будете удивлены легкости решения этой задачи.

set qq=1q2w3e4r cscript //nologo strlen.js %qq% for /F "usebackq" %%i in (`cscript //nologo strlen.js "%qq%"`) do set /A myvar=%%i echo length str %myvar%

Переменная qq содержит ваш пароль? Да, я подсматривал...
А вот и содержимое файла strlen.js:

//JScript var Args = WScript.Arguments; WScript.Echo(Args(0).length);

Приведенный выше скрипт возвращает длину строковой переменной, переданную ему как параметр.
То, что в скрипт могут быть переданы аргументы, мы уже рассматривали в синтаксисе cscript.
Для получения данных из скрипта используется прием, рассмотренный в разделе ПРИМЕРЫ проекта Справочник команд bat/cmd на странице Анализ результатов работы команды, программы.
Код JScript содержит извлечение аргумента, обращение к функции и вывод значения.

И еще один пример.

set qq=c: for /F "usebackq tokens=1,2,3" %%i in (`cscript //nologo spacedrv.js %qq%`) do ( echo drive: %qq% echo TotalSize: %%i echo FreeSpace: %%j echo FileSystem: %%k )


И сам скрипт spacedrv.js:

var Args = WScript.Arguments; if (Args.length == 0) drv="c:"; else drv=Args(0); var fso = new ActiveXObject("Scripting.FileSystemObject"); var fdrv = fso.GetDrive(drv); WScript.Echo(fdrv.TotalSize+ " "+fdrv.FreeSpace+" "+fdrv.FileSystem);


В результате выполнения этого скрипта вы узнаете общий объем диска, свободное пространство на нем и тип файловой системы.
Интерес в этом примере может представлять то, что JScript возвращает в bat / cmd файл сразу 3 значения.





Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуетс¤ регистраци¤).









  TopList own counter Valid XHTML 1.0 Strict Valid CSS

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница

Copyright © 1999 - 2024  Бронислав Краснер