Вывод окна пользователю для ввода информации CMD
Здравствуйте, Великие умы!
Есть команда
Код:
csptest.exe -keycopy -src «Имя исходного контейнера» -pinsrc=пароль -dest «Имя конечного контейнера» -pindest=пароль
есть задача, (не буду подробно) чтобы после запуска батника на копирование ключа в моменте «Имя исходного контейнера» пользователю показывалось окно, с полем ввода наименования ключа (наименование которого у него будет) и кнопкой "Установить". Если такой ключ не будет найден (поиск происходит сам программой csptest.exe), то пользователю выйдет окно с ошибкой что "такой ключ не найден, попробуйте снова". Ну и как бонус в команду «Имя конечного контейнера» дописывать к введенному наименованию при копировании "-копия".
|
Цитата:
Цитата ownsmir
показывалось окно, с полем ввода »
|
у cmd нет такого окна и соответственно такой возможности реализации именно чистыми своими средствами.
|
получилось примерно так
Код:
@echo off
set /p "keys=Введите наименование ключа:"
echo Наименование ключа: %keys%
subst K: C:\test
cd "C:\Program Files\Crypto Pro\CSP\"
csptest.exe -keycopy -contsrc "%keys%" -pinsrc="" -contdest "\\.\REGISTRY\%keys%-копия" -pindest=""
if %errorlevel%==0 (
goto :yes
) else (
goto :no
)
:no
echo Ключ не установлен, попробуйте снова.
subst K: /d
pause
exit
:yes
echo Ключ устанавливается.
csptest.exe -property -cinstall -cont "%keys%-копия"
subst K: /d
echo Ключ устанавливился.
pause
Но помимо всего написанного, нужно добавить еще поиск наименования из файла (в котором есть список), чтобы пользователь ввел название, пошел поиск этого наименования в файле, если нашел подключает диск, назначает необходимые права для копирования ЭЦП, копирует, устанавливает сертификат, удаляет назначенные права и отключает диск. Получится реализовать? findstr /M %keys% C:\test\keys.txt не хочет, ищет по словам а не все выражение, как сделать чтобы он искал полностью вводимое выражение дословно с пробелами?
|
Цитата:
Цитата ownsmir
как сделать чтобы он искал полностью вводимое выражение дословно с пробелами? »
|
Код:
findstr.exe /l /c:"bla bla bla"
|
Цитата:
Цитата ownsmir
назначает необходимые права для копирования ЭЦП »
|
Уже понял что тупость сморозил, у пользователя нет прав назначать права...
Тогда хотя-бы первую часть разобраться бы как искать полностью с пробелами переменную в файле
|
Цитата:
Цитата Iska
findstr.exe /l /c:"bla bla bla" »
|
не подскажешь как найденное записать в переменную? убрав первые несколько значений \\.\FAT12_H\
|
ownsmir,
"живая" строка, четкая задача - иначе долго ответа ждать придется.
|
Пока рабочий код получается таким
Код:
@echo off
set /p "name=Введите наименование ключа:"
echo Наименование ключа: %name%
for /f "delims=" %%a in ('findstr /l /c:"%name%" C:\test\keys.txt') do set keys=%%a
echo Найденный ключ: %keys%
pause
if %errorlevel%==0 (
goto :yes
) else (
goto :no
)
:no
echo Название ключа не найдено, попробуйте снова.
pause
exit
:yes
echo Ключ устанавливается.
subst K: C:\test
cd "C:\Program Files\Crypto Pro\CSP\"
csptest.exe -keycopy -contsrc "%keys%" -pinsrc="" -contdest "\\.\REGISTRY\%keys%-копия" -pindest=""
if %errorlevel%==0 (
goto :yes
) else (
goto :no
)
:no
echo Ключ не установлен, попробуйте снова.
subst K: /d
pause
exit
:yes
echo Ключ устанавливается.
csptest.exe -property -cinstall -cont "%keys%-копия"
subst K: /d
echo Ключ устанавливился.
pause
Задача: После ввода части названия ключа (фамилии или часть названия организации) пользователем, происходит поиск совпадений в файле. Если находится более 1 совпадения, эти совпадения (полностью всю строку) записываются каждый в свою переменную и пользователю дает выбрать варианты из найденных результатов (в виде cmd под цифрами 1,2,3 и т.д.) Пользователь выбирает и процесс идет дальше.
|
ownsmir,
ну и попробуйте делать запрос по:
"Спир", "Захар" или "Констант"
из файла:
Спиридонов Захар Константинович
Спиртзавод "Константин"
село Захарово, ул. Константиновская
и это так, навскидку и без двойных фамилий и прочих чудес (кодировки, кириллицы и спецсимволов)
ownsmir,
подобные вещи делаются наоборот:
-----
в файл строки записываются с учетом заданного форматирования (шаблона)
считывается определенная строка где будет наиболее уникальная информация
выводятся такие строки (или понятная уникальная часть) с номером, который надо ввести и по идентификации попадаем в файл или что что там надо сделать, кстати так и не написано что надо-то в конце концов, может все проще другим путем сделать и файла тоже нет для понимания, опять пальцем в небо.
Напишите полную задачу, цель этой задачи, а вот как раз ваши попытки реализации совершенно не нужны.
|
Задача: При запуске файла выходит окно пользователю для ввода названия ключа, пользователь его вводит, по введенному названию происходит поиск в файле на совпадение. Все найденные совпадению выводятся пользователю (под цифрами) для выбора нужного наименования ключа. После выбора пользователя происходит подключение папки с ключами как диска, и выполняются команды по его установке в реестр (с начало копирование потом установка сертификата), после успешного выполнения диск подключенный ранее отключается.
Цель: Обезопасить диск с ЭЦП от лишнего проникновения и автоматизировать установку ЭЦП бухгалтерии в реестр
|
Хорошо поставлю задачу проще: Нужно в файле найти все строки совпадающие с заданным условием поиска в переменной %name% (это текст фамилия или часть названия организации) и ВСЕ найденные строки записать каждую в свою переменную для дальнейшего выбора пользователя нужной переменной.
|
с вашей постановкой сценария - ну такое себе
Цитата:
Цитата ownsmir
Обезопасить диск с ЭЦП от лишнего проникновения »
|
а вот тут совершенно непонятно - батник не дает защиты, файл доступен и известно где, какая защита и кого от кого? Может проще дать права гр. политикой кому надо и не заниматься ерундой?
|
Цитата:
Цитата alpap
а вот тут совершенно непонятно - батник не дает защиты, файл доступен и известно где, какая защита и кого от кого? Может проще дать права гр. политикой кому надо и не заниматься ерундой? »
|
батник будет переформатирован в exe и зашифрован...
Может не мою цель и задачи будем разбирать? а разберемся как
Цитата:
Цитата ownsmir
Нужно в файле найти все строки совпадающие с заданным условием поиска в переменной %name% (это текст фамилия или часть названия организации) и ВСЕ найденные строки записать каждую в свою переменную для дальнейшего выбора пользователя нужной переменной. »
|
|
Цитата:
Цитата ownsmir
Может не мою цель и задачи будем разбирать? а разберемся как »
|
вот потому у вас и не получается, что "как" не зависит от цели и задачи
|
Цитата:
Цитата ownsmir
батник будет переформатирован в exe и зашифрован... »
|
И, вдогон коллегам, добавлю — не будьте столь наивны.
|
Время: 13:07.
© OSzone.net 2001-