Stalker_AleX333, Плохо, что приведён код (надо его изучать, чтобы понять смысл задачи), легче - когда поставлена задача.
Пытаюсь сформулировать: есть текстовый файл, например,
Silver Raven mods pack data\fileslist.cfg,
в котором, среди прочего, содержится список файлов в виде определённого параметра
Код:

ControlPanelFilesList="Silver Raven mods pack data\Additional options\Alternate Start\Alternate Start - Live Another Life.esp" "Silver Raven mods pack data\Additional options\Alternate Start\Alternate Start - Live Another Life.bsa" "Silver Raven mods pack data\Additional options\Serana\Cured\00002b6c.nif" и т.д.
Надо проанализировать наличие перечисленных файлов, выдать список отсутствующих, при отсутствии хоть одного файла - завершить работу. При наличии всех файлов - продолжить исполнение следующего кода.
Вот вариант
Код:

@Echo Off
cls
Set "CFG=Silver Raven mods pack data\fileslist.cfg"
Set "FileList=ControlPanelFilesList="
If Not Exist "%CFG%" (Echo !!! File "%CFG%" not found &Pause &Exit /B 2)
Set /A N=100
Set /A Log=0
FOR /F "usebackq tokens=1* delims==" %%i IN (`FINDSTR /I "%FileList%" "%CFG%"`) DO (
Set /A Log=1
FOR %%f IN (%%j) DO If Not Exist %%f (
Set /A N+=1
Call Set "@@@%%N%%=%%f"
)
)
If %Log%==0 (Echo !!! Parameter "%FileList%" not found in "%CFG%" &Pause &Exit /B 2)
If Not %N%==100 (
Echo !!! Files not found
FOR /F "usebackq tokens=1* delims==" %%i IN (`Set "@@@"`) DO Echo %%j
Pause
Exit /B 2
)
Echo Здесь пишем остальной код
pause
Exit /B
Восклицаний не боится! Чтобы не было проблем с "!", надо суметь обойтись без setlocal EnableDelayedExpansion
Если надо искать наличие файлов, перечисленных в разных параметрах, лучше это оформить в виде процедуры
Код:

@Echo Off
cls
Set "CFG=Silver Raven mods pack data\fileslist.cfg"
Set /A N=100
Call :NoFiles "%CFG%" "ControlPanelFilesList=" ||Exit /B 2
Call :NoFiles "%CFG%" "TraLaLaFilesList=" ||Exit /B 2
If Not %N%==100 (
Echo !!! Files not found
FOR /F "usebackq tokens=1* delims==" %%i IN (`Set "@@@"`) DO Echo %%j
Pause
Exit /B 2
)
Echo Здесь пишем остальной код
pause
Exit /B
:NoFiles
If Not Exist %1 (Echo !!! File %1 not found &Pause &Exit /B 2)
Set /A Log=0
FOR /F "usebackq tokens=1* delims==" %%i IN (`FINDSTR /I %2 %1`) DO (
Set /A Log=1
FOR %%f IN (%%j) DO If Not Exist %%f (
Set /A N+=1
Call Set "@@@%%N%%=%%f"
)
)
If %Log%==0 (Echo !!! Parameter %2 not found in %1 &Pause &Exit /B 2)
Exit /B 0
Цитата Stalker_AleX333:
научить читать файл конфига:
1. в столбик
2. по такому шаблону »
|
Вот так, но как это связано с поиском отсутствующих файлов?
Код:

@Echo Off
cls
Set "CFG=Silver Raven mods pack data\fileslist.cfg"
Set "Out=Silver Raven mods pack data\fileslist.cfg2"
If Not Exist "%CFG%" (Echo !!! File "%CFG%" not found &Pause &Exit /B 2)
>"%Out%" (FOR /F "usebackq tokens=1* delims==" %%i IN (`2^>nul More "%CFG%"`) DO (
Echo [%%i]
If Not "%%j"=="" FOR %%f IN (%%j) DO Echo %%~f
Echo.
))
pause
Exit /B