Silver Raven
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Alex_Piggy Тег "more" не заметил, сорри. Речь об этом варианте?: Код: call :read_control_panel_files_list_config "%ControlPanelFilesListConfig%" :: Проверка наличия всех файлов для панели управления в Silver Raven mods pack data set "ControlPanelFilesIsMissingFiles=" for %%? in (%$ControlPanelFilesList%) do ( if not defined ControlPanelFilesIsMissingFiles if not exist "%%~?" set "ControlPanelFilesIsMissingFiles=1" ) if defined ControlPanelFilesIsMissingFiles ( color fc echo. echo. echo. echo *ОШИБКА! Нижеуказанные файлы, необходимые для корректной работы программы, не найдены: echo. echo. for %%? in (%$ControlPanelFilesList%) do if not exist "%%~?" <nul set /p "x='%%~?', " echo. echo. echo. echo *ОШИБКА! Вышеуказанные файлы, необходимые для корректной работы программы, не найдены. echo. echo Извлеките папку Silver Raven mods pack data из установочных архивов со сборкой в папку игры вручную и перезапустите панель управления. Убедитесь, что антивирусное ПО не блокирует ее работу. echo. echo. pause exit ) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Чтение конфиг-файла fileslist.cfg :read_control_panel_files_list_config for /f "usebackq eol=; tokens=1,2* delims==" %%a in ("%~1") do set "$%%a=%%b" exit /b | или моем: Код: call :read_control_panel_files_list_config "%ControlPanelFilesListConfig%" :: Проверка наличия всех файлов для панели управления в Silver Raven mods pack data setlocal EnableDelayedExpansion for %%? in (!$ControlPanelFilesList!) do ( if "" == "!!" endlocal if not exist "%%?" ( set File=%%? setlocal EnableDelayedExpansion for /f "delims=" %%A in ("!ControlPanelFilesListMissingFiles!, !File!") do ( endlocal set ControlPanelFilesListMissingFiles=%%A ) ) ) if defined ControlPanelFilesListMissingFiles ( color fc echo. echo. echo. echo *ОШИБКА! Нижеуказанные файлы, необходимые для корректной работы программы, не найдены: echo. echo. for /f "usebackq tokens=1* delims==" %%A in ("%ControlPanelFilesListConfig%") do ( for %%? in (%%B) do if not exist %%? set ControlPanelFilesListMissingFiles=1 && echo %%~? ) echo. echo. echo. echo *ОШИБКА! Вышеуказанные файлы, необходимые для корректной работы программы, не найдены. echo. echo Извлеките папку Silver Raven mods pack data из установочных архивов со сборкой в папку игры вручную и перезапустите панель управления. Убедитесь, что антивирусное ПО не блокирует ее работу. echo. echo. pause exit ) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Чтение конфиг-файла fileslist.cfg :read_control_panel_files_list_config for /f "usebackq eol=; tokens=1,2* delims==" %%A in ("%~1") do set "$%%A=%%B" exit /b | Ваш вариант работает, вне моего CMD-шника. (внутри него пока никак. буду искать причину.) Только все в кучу выводит, я чуть изменил: Код: for %%? in (%$ControlPanelFilesList%) do if not exist "%%~?" <nul echo %%~? | UPD. Валится, если все искомые файлы на месте. |