Показать полную графическую версию : [решено] Вывод окна пользователю для ввода информации CMD
Здравствуйте, Великие умы!
Есть команда
csptest.exe -keycopy -src «Имя исходного контейнера» -pinsrc=пароль -dest «Имя конечного контейнера» -pindest=пароль
есть задача, (не буду подробно) чтобы после запуска батника на копирование ключа в моменте «Имя исходного контейнера» пользователю показывалось окно, с полем ввода наименования ключа (наименование которого у него будет) и кнопкой "Установить". Если такой ключ не будет найден (поиск происходит сам программой csptest.exe), то пользователю выйдет окно с ошибкой что "такой ключ не найден, попробуйте снова". Ну и как бонус в команду «Имя конечного контейнера» дописывать к введенному наименованию при копировании "-копия".
показывалось окно, с полем ввода »
у 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 не хочет, ищет по словам а не все выражение, как сделать чтобы он искал полностью вводимое выражение дословно с пробелами?
как сделать чтобы он искал полностью вводимое выражение дословно с пробелами? »
findstr.exe /l /c:"bla bla bla"
назначает необходимые права для копирования ЭЦП »
Уже понял что тупость сморозил, у пользователя нет прав назначать права...
Тогда хотя-бы первую часть разобраться бы как искать полностью с пробелами переменную в файле
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% (это текст фамилия или часть названия организации) и ВСЕ найденные строки записать каждую в свою переменную для дальнейшего выбора пользователя нужной переменной.
автоматизировать »
с вашей постановкой сценария - ну такое себе
Обезопасить диск с ЭЦП от лишнего проникновения »
а вот тут совершенно непонятно - батник не дает защиты, файл доступен и известно где, какая защита и кого от кого? Может проще дать права гр. политикой кому надо и не заниматься ерундой?
а вот тут совершенно непонятно - батник не дает защиты, файл доступен и известно где, какая защита и кого от кого? Может проще дать права гр. политикой кому надо и не заниматься ерундой? »
батник будет переформатирован в exe и зашифрован...
Может не мою цель и задачи будем разбирать? а разберемся как Нужно в файле найти все строки совпадающие с заданным условием поиска в переменной %name% (это текст фамилия или часть названия организации) и ВСЕ найденные строки записать каждую в свою переменную для дальнейшего выбора пользователя нужной переменной. »
Может не мою цель и задачи будем разбирать? а разберемся как »
вот потому у вас и не получается, что "как" не зависит от цели и задачи
батник будет переформатирован в exe и зашифрован... »
И, вдогон коллегам, добавлю — не будьте столь наивны.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.