Я не уверен, что вы подразумеваете под обновлением списка. Если вы хотите постоянно обновлять список в самом пакетном файле, вам нужно прояснить это, чтобы я мог обновить ответ. Сейчас я предполагаю, что вы просто хотите временно обновить переменную списка:
@echo off
set "list=Bob,Steve,Harry"
set /p name=Enter your name:
echo %list% |findstr /i "\<%name%\>" >nul 2>&1
if %errorlevel% equ 1 goto add
echo %name% already in list
goto :eof
:add
set "list=%list%,%name%"
echo %list%
Однако вы можете также добавить все имена в отдельный файл. Например:
names.txt
Bob
Steve
Harry
Затем пакетный файл:
@echo off
set /p "name=Enter your name: "
for /f "delims=" %%i in ('type names.txt ^| findstr /i "\<%name%\>"') do if /i "%%~i"=="%name%" (
echo %name% already in list && goto :eof
)
:add
echo %name%>>names.txt
echo %name% added to names.txt && set name=
Это будет проверять каждое значение в спискеимена внутри names.txt
, и если совпадений не найдено, имя будет добавлено в файл.