megaloman, всё-равно появляется ошибка. Так как у меня в 2 местах подобный скрипт используется. Первое - это когда надо отозвать сертификат, то там при не нахождении искомой записи скрипт должен завершить работу (точнее вернуться в предыдущий пункт меню).
И второй случай это при создании нового сертификата у меня показывается нумерованный список уже имеющихся, но не без необходимости с ними что-либо делать. Эту часть кода я убрал:
Скрытый текст
Код:

: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%"
поэтому если и не найдено записей, то я решил, что проще пропустить часть кода, сделав соответствующую метку и перейдя сразу к ней. Ну и надо учитывать, что не закрывая скрипт может потребоваться несколько раз выполнять этот код. и могут как присутствовать записи о сертификатах, так и нет. Чтобы не принимало %xx% старое значение я каждый раз присваиваю ему пустое значение.
Вот исправил, как вы написали.
Исполняемый код:
Код:

:: Показать список клиентов
CALL :EchoColor 6 " Список клиентов:"&echo.
echo.
FOR /F "usebackq skip=1 tokens=1,7 delims=/" %%i In ("%indextxt%") 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@@" ||(CALL :EchoColor 4 "[X] Клиентские сертификаты [НЕ НАЙДЕНЫ]"&echo. &echo.)
Set /A y=0
FOR /F "usebackq tokens=2 delims==" %%i In (`Set "x@@"^|Sort`) DO (
Set /A y+=1
Call Set "@@%%y%%=%%i"
)
FOR /L %%i In (1,1,%y%) Do (Set "xx= %%i"&Call Echo %%xx:~-4%%. %%@@%%i%%)
:SKIP
CALL :EchoColor 3 "================================================================================"&echo.
echo.
Вот результат:
Цитата:
Список клиентов:
[X] Клиентские сертификаты [НЕ НАЙДЕНЫ]
Переменная среды x@@ не определена
================================================================================
|
P.S.: Опубликовал полностью свой проект
OpenVPN-All-in-One - Скрипт,облегчающий создание серверной и клиентской части OpenVPN
Если будет желание и время разобраться, то прошу ознакомиться. Лучше там продолжить обсуждение.