Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Ka3hak,
Можно, пожалуйста, и код полностью
Постановка задачи: Путь\файл.cfg\Папка\файл.bat
В батнике указываем только имя файл.cfg
Код: Выделить весь код
@Echo OFF

Set "cfgIn0=tra la la.cfg"
Set Rep="Dreamcast.Region=333" "Dreamcast.Broadcast=444" "Dreamcast.RTC=5552127595098" "DefaultImage=image.gdi" "Dynarec.Enabled=0"

Set "cfgIn=%~dp0"
FOR /F "usebackq delims=" %%j IN ('%cfgIn:~0,-1%') DO Set "cfgIn=%%~dpj%cfgIn0%"

If Not Exist "%cfgIn%" (
	Echo:
	Echo ????? File %cfgIn% not found !!!!!
	Echo:
	pause
	GoTo :Eof
)

Copy "%cfgIn%" "%cfgIn%.tmp" >nul

>"%cfgIn%" (FOR /F "usebackq tokens=*" %%a IN ("%cfgIn%.tmp") DO Call :Rezult "%%a" %Rep%)

rem Del "%cfgIn%.tmp"
GoTo :Eof

:Rezult
	Set "InStr=%~1"
 	FOR /F "usebackq eol==" %%i IN ('%InStr%') DO Set "Par1=%%i"
	:Begin
 		FOR /F "usebackq eol==" %%j IN ('%~2') DO Set "Par2=%%j"
		If /I "%Par1%"=="%Par2%" Set "InStr=%~2" &GoTo :End                                              
		Shift
		If Not "%~2"=="" GoTo :Begin
	:End
	Echo %InStr%
GoTo :Eof
Аналогично второй вариант. Если в первом варианте батник делает копию исходного файла с именем файл.cfg.tmp, который при желании можно оставить rem Del "%cfgIn%.tmp", а без желания - удалить Del "%cfgIn%.tmp", то второй вариант делает то же, но без создания промежуточного файла.
"на ~2 секунды запускается консоль cmd" - на форуме сто раз обсуждалось как этого избежать, не вижу смысла искать.
"насчёт удаления пустых строк" - моё дело предупредить, это особенность работы батника, и не возьмусь в рамках CMD этого избежать.
"после манипуляций, скрипт перестал работать." - без комментариев, я бы предложил Вам описать, что при этом происходит, выдаются ли какие-либо сообщения. А так - нет мыслей. У меня в указанной постановке работает

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:28, 04-06-2017 | #9