Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вывод окна пользователю для ввода информации CMD

Ответить
Настройки темы
CMD/BAT - [решено] Вывод окна пользователю для ввода информации CMD

Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте, Великие умы!
Есть команда
Код: Выделить весь код
csptest.exe -keycopy -src «Имя исходного контейнера» -pinsrc=пароль -dest «Имя конечного контейнера» -pindest=пароль
есть задача, (не буду подробно) чтобы после запуска батника на копирование ключа в моменте «Имя исходного контейнера» пользователю показывалось окно, с полем ввода наименования ключа (наименование которого у него будет) и кнопкой "Установить". Если такой ключ не будет найден (поиск происходит сам программой csptest.exe), то пользователю выйдет окно с ошибкой что "такой ключ не найден, попробуйте снова". Ну и как бонус в команду «Имя конечного контейнера» дописывать к введенному наименованию при копировании "-копия".

Отправлено: 12:22, 20-11-2019

 

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата ownsmir:
показывалось окно, с полем ввода »
у cmd нет такого окна и соответственно такой возможности реализации именно чистыми своими средствами.

Отправлено: 15:10, 20-11-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


получилось примерно так
Код: Выделить весь код
@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 не хочет, ищет по словам а не все выражение, как сделать чтобы он искал полностью вводимое выражение дословно с пробелами?

Отправлено: 16:20, 20-11-2019 | #3


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата ownsmir:
как сделать чтобы он искал полностью вводимое выражение дословно с пробелами? »
Код: Выделить весь код
findstr.exe /l /c:"bla bla bla"
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:48, 20-11-2019 | #4


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата ownsmir:
назначает необходимые права для копирования ЭЦП »
Уже понял что тупость сморозил, у пользователя нет прав назначать права...
Тогда хотя-бы первую часть разобраться бы как искать полностью с пробелами переменную в файле

Отправлено: 17:49, 20-11-2019 | #5


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
findstr.exe /l /c:"bla bla bla" »
не подскажешь как найденное записать в переменную? убрав первые несколько значений \\.\FAT12_H\

Отправлено: 18:49, 20-11-2019 | #6


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


ownsmir,
"живая" строка, четкая задача - иначе долго ответа ждать придется.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:44, 20-11-2019 | #7


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Пока рабочий код получается таким
Код: Выделить весь код
@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, 21-11-2019 в 10:29.


Отправлено: 10:19, 21-11-2019 | #8


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


ownsmir,
ну и попробуйте делать запрос по:
"Спир", "Захар" или "Констант"
из файла:
Спиридонов Захар Константинович
Спиртзавод "Константин"
село Захарово, ул. Константиновская
и это так, навскидку и без двойных фамилий и прочих чудес (кодировки, кириллицы и спецсимволов)
ownsmir,
подобные вещи делаются наоборот:
-----
в файл строки записываются с учетом заданного форматирования (шаблона)
считывается определенная строка где будет наиболее уникальная информация
выводятся такие строки (или понятная уникальная часть) с номером, который надо ввести и по идентификации попадаем в файл или что что там надо сделать, кстати так и не написано что надо-то в конце концов, может все проще другим путем сделать и файла тоже нет для понимания, опять пальцем в небо.
Напишите полную задачу, цель этой задачи, а вот как раз ваши попытки реализации совершенно не нужны.

Отправлено: 14:54, 21-11-2019 | #9


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Задача: При запуске файла выходит окно пользователю для ввода названия ключа, пользователь его вводит, по введенному названию происходит поиск в файле на совпадение. Все найденные совпадению выводятся пользователю (под цифрами) для выбора нужного наименования ключа. После выбора пользователя происходит подключение папки с ключами как диска, и выполняются команды по его установке в реестр (с начало копирование потом установка сертификата), после успешного выполнения диск подключенный ранее отключается.

Цель: Обезопасить диск с ЭЦП от лишнего проникновения и автоматизировать установку ЭЦП бухгалтерии в реестр

Отправлено: 16:18, 21-11-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вывод окна пользователю для ввода информации CMD

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] вывод информации Ubiquiti Скриптовые языки администрирования Windows 14 14-02-2016 23:42
Интерфейс - Как заставить Windows 7 запоминать язык ввода для каждого окна emcee Microsoft Windows 7 7 29-06-2015 15:41
[решено] Поле для ввода IP просвечивает сквозь все вкладки GUI окна FlatX007 AutoIt 1 22-06-2009 17:32
C/C++ - bat & cmd - сокрытие окна и вывод данных консоли в интерфейсе нашей программы crashtuak Программирование и базы данных 5 07-05-2009 16:40




 
Переход