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

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

Аватара для minutka15

Пользователь


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

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


megaloman
С тем скриптом нет возможности передавать такие" значения.
Если на выходе делать батник то он пойдет т.к. мы передаем start /w без специальных символов.
В случае если на выходе иметь конфиг для 7z sfx то нам нужно передать слово с символом RunProgram=" и скрипт не работает.
С прошлым скриптом все получается.
Собрал таким образом, вроде бы работает:
Код: Выделить весь код
@Echo Off
cls
	Set "FileIn=run.txt"
	Set "Fsprav=setup.ini"
	Set "WordIn=RunProgram=""
	Set "WordIn_=RunProgram=""

	>nul 2>&1 Find "=%WordIn%"  "%FileIn%" &&(Echo File "%FileIn%" has already been processed &Exit /B)
	>nul 2>&1 Find "=%WordIn_%" "%FileIn%" &&(Echo File "%FileIn%" has already been processed &Exit /B)

	>"%FileIn%.tmp" (FOR /F "usebackq tokens=1* delims==" %%i In ("%FileIn%") DO (
		If "%%j"=="" (Echo %%i
		) Else (
			Set "WordAdd=%WordIn%"
			Echo %%j|>nul 2>nul FindStr /B "_"&&Set "WordAdd=%WordIn_%"
			<nul Call Set /P Str=%%i=%%WordAdd%%
			FindStr /B /I "%%j " "%Fsprav%" ||Echo %%j
		)
	))
 	>nul Move /Y "%FileIn%.tmp" "%FileIn%"

	Set /A N=1000000
	FOR /F "usebackq tokens=1* delims==" %%i In ("%FileIn%") DO (
		Call Set /A N+=1
		Set "Name=%%i"
		If "%%j"=="" (Call Set @@@%%N%%=%%i) Else (Call Set @@@%%N%%=%%j)
	)
	>"%FileIn%" (FOR /F "usebackq tokens=1* delims==" %%i In (`Set "@@@"`) DO Echo %%j)
Exit /B
В данном случае на выходе будет конфиг для сборки 7z sfx
команды идут в таком порядке
RunProgram="имя-установщика.exe -y"
осталось допилить начало и конец

Спасибо за помощь !!!!

P.S Мне на самом верху рожденного файла нужно добавить 4 строчки не затрагивая сам текст
первую я добавляю так:
Код: Выделить весь код
powershell "Get-ChildItem run.txt | ForEach-Object { $f=$_ | Get-Content -ReadCount 0; $f[0]=';!@Install@!UTF-8!'; Set-Content $_.FullName $f }"
Но когда я начинаю добавлять вторую третью -ReadCount 0; $f[1]='; -ReadCount 0; $f[2]='; то строки переписываются.
Как этого избежать?
Первая строка в обязательном порядке должна быть на самом верху, а остальные три можно подсунуть в конец списка...

-------
We don't call 911


Последний раз редактировалось minutka15, 11-12-2022 в 20:24.


Отправлено: 20:09, 11-12-2022 | #28