Для командной строки есть проблема - невозможно безопасно запросить данные у клиента для работы скрипта, например чтобы пользователь ввел пароль а мы скриптом его проверили бы. Нашлась программа под названием The Wizard's Apprentice, или WizApp. Подробности тут. Она и позволяет делать то, что нам надо. Запускать файл test.cmd echo off set watitle=Login windows. set watext=Please enter the password: set wasig=(c) Raymond set waico=buddy.ico set wabmp=logo.bmp set walabels=;Go!;Go!;%date% set wabat=c:\11\wizap\test2.cmd start /w c:\11\wizap\wizapp.exe NOCANCEL NOBACK EB PLAIN <nul set /p strTemp=call passcheck.cmd >test3.cmd tr -cd 0-9 <test2.cmd >>test3.cmd call test3.cmd pause При запуске выдается такое окошко: ![]() Где: watitle - Заголовок окна watext - Текст окна wasig - Текст слева снизу aico - Иконка окна (в моем случае мишка) wabmp - Картинка часов walabels - Надписи кнопок внизу окна (назад/вперед/финиш/отмена) wabat - Файл, в котором программа выведет то, что набрал пользователь. start /w c:\11\wizap\wizapp.exe NOCANCEL NOBACK EB PLAIN - Запуск самой программы с ключами К сожалению особенности командной строки не позволяют программе добавить или изменить константу в процессе работы, поэтому она вынуждена создавать новый файл с введенными данными пользователя. В данном случае это будет файл c:\11\wizap\test2.cmd. Примерный вывод такого файла: set waoutput=123123 set waoutnum= Соответственно чтобы использовать эти данные, я делаю так. Создаю новый файл test3.cmd с командой call passcheck.cmd <nul set /p strTemp=call passcheck.cmd >test3.cmd Выдираю значение пароля и добавляю его в файл text3.cmd tr -cd 0-9 <test2.cmd >>test3.cmd В итоге в этом файле появляется команда вызова скрипта проверки пароля: call passcheck.cmd 111222333 И в конце скрипта собственно делаю его вызов: call test3.cmd В самом файле passcheck.cmd происходит только показ пароля: echo %1 На этом пока все. Возможно в будущем доработаю скрипт генерации и проверки временных паролей. |
Для сисадминов > Скриптование >