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

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

Ветеран


Contributor


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

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


добавление параметра мод с определённым значением так чтобы добавление происходило только если данного значения нет

Код: Выделить весь код
@Echo Off
cls
	Set "FileIni=Z:\Soft_In\SADXModLoader.ini"
	Set "Key=Mod"
	Set "Add="Во поле" "Perfect Chaos Music Swap" "Люли люли" "sadx-frame-limit" "Берёзонька стояла" "EggCarrierOceanMusic""

	Set /A N=1000
	Set "Pref=A"
	FOR /F "usebackq tokens=1* delims==" %%i IN ("%FileIni%") DO Call :In "%%i" "%%j"

	Set /A N=1000
	FOR %%i IN (%Add%) DO Set /A N+=1 &Call Set "Z@@%%N%%=%%~i"

	FOR /F "usebackq tokens=3 delims==" %%i IN (`Set "B@@"`) DO (
		FOR /F "usebackq tokens=1,2 delims==" %%a IN (`Set "Z@@"`) DO If /I "%%~i"=="%%~b" Set "%%~a="
	)

	Set /A N=9000
	FOR /F "usebackq tokens=1,2 delims==" %%a IN (`Set "Z@@"`) DO Set /A N+=1 &Call Set "B@@%%N%%=%Key%99=%%~b"

	Move /Y "%FileIni%" "%FileIni%.bak" >nul

	Set /A N=0
	>"%FileIni%" (
	FOR /F "usebackq tokens=1* delims==" %%i IN (`Set "A@@"`) DO Echo %%j
	FOR /F "usebackq tokens=3 delims==" %%i IN (`Set "B@@"`) DO Set /A N+=1 &Call Echo %Key%%%N%%=%%i
	FOR /F "usebackq tokens=1* delims==" %%i IN (`Set "C@@"`) DO Echo %%j
	)
pause
GoTo :Eof

:In
	Set /A N+=1
	Set /A M=0
	Set "InKey=%~1"
	Call Set "InKey=%%InKey:%Key%=%%"
	Set /A M=%InKey% 2>nul
	If %Pref%==B If "%M%"=="0" Set "Pref=C"
	If %1=="%Key%1" Set "Pref=B"
	Set "%Pref%@@%N%=%~1=%~2" 
GoTo :Eof

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

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

Отправлено: 17:13, 10-01-2019 | #20