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

Показать сообщение отдельно

Ветеран


Contributor


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

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


V!RTuE, ИМХО, надо так:
Код: Выделить весь код
@Echo Off
cls
>nul Chcp 1251
	Set "FileIn=Z:\Program Files\OpenVPN\easy-rsa\keys\index.txt"

	If Not Exist "%FileIn%" (Echo Файл "%FileIn%" не найден. &Echo. &Pause &Exit /B 2)

	FOR /F "usebackq skip=1 tokens=1,7 delims=/" %%i In ("%FileIn%") DO (
		Set "xx=%%j"
		Call Set "x@@%%xx:~3%%=%%xx:~3%%"
		Echo %%i| >nul 2>nul FindStr /B /I /C:"R"&&Call Set "x@@%%xx:~3%%=%%xx:~3%% [ОТОЗВАН]"
	)
	>nul 2>&1 Set "x@@" ||(Echo Пользовательские сертификаты не найдены. &Echo. &Pause &Exit /B 1)

	Set /A y=0
	FOR /F "usebackq tokens=2 delims==" %%i In (`Set "x@@"^|Sort`) DO (
		Set /A y+=1
		Call Set "@@%%y%%=%%i"
	)

	Echo Введите номер, соответствующий сертификату, который требуется отозвать (Enter - завершение работы):
	Echo.
	FOR /L %%i In (1,1,%y%) Do (Set "xx=     %%i"&Call Echo %%xx:~-4%%. %%@@%%i%%)

	:Begin
		Echo.
		Set "NN="
		Set /P NN=Выбираем номер N=
		If "%NN%"=="" Exit /B 0
		If 1 LEQ %NN% If %NN% LEQ %y% (Call Set "Select=%%@@%NN%%%" &GoTo :End)
		Echo Введено неверное значение "%NN%", введите верное: &GoTo :Begin
	:End
	Echo вы выбрали: "%Select%"
pause
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 12:35, 10-01-2023 | #13