Один из способов улучшить это - исключить ненужную замену запятой:
SET "_TMPVAR=Ports|http:8000|https:8443|"
FOR /F "tokens=1-3 delims=|" %%m in ("%_TMPVAR%") do (
SET "_TMPVAR1=%%n"
SET "_TMPVAR2=%%o"
)
Кроме того, вы можете воспользоваться списком разделителей для разделения на |
и :
, чтобы разбить ваши схемы и порты, что позволит вам поместить логику в оператор FOR
:
@echo off
cls
SET "_TMPVAR=Ports|http:8000|https:8443|"
SET _HTTPS=0000
FOR /F "tokens=2-7 delims=|:" %%a in ("%_TMPVAR%") do (
IF %%a==https SET _HTTPS=%%b
IF %%c==https SET _HTTPS=%%d
IF %%e==https SET _HTTPS=%%f
)
SET _
ECHO SSL Port is %_HTTPS%
Преимущество использования поведения разделителя состоит в том, что он допускает номера портов любой длины.