PDA

Показать полную графическую версию : .: Файлы конфигурации 7z SFX. Помощь и советы :.


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26

gora
25-08-2015, 13:13
запутался »
Посмотрите здесь (http://forum.oszone.net/post-1908642.html#post1908642).

Desmodeus
01-10-2015, 07:38
Ощущаю себя полным идиотом. Пытаюсь сделать простой установщик сборки для rainmaker(кастомный виджет для предприятия +вырезана возможность подгружать свои) на основе портабл версии программы. Все собрано в одну папку, которую надо поместить в Program Files, плюс ярлык для помещения в автозапуск. Написал простой установочник, но проблема - при старте сразу же выдается ошибка "указанный файл не найден"
;!@Install@!UTF-8!
RunProgram="hidcon:cmd /c xcopy \"Rainmeter\" \"%ProgramFiles%\\Rainmeter\" /s /e /i /y /h /r /k"
RunProgram="hidcon:cmd /c copy \"Rainmeter.lnk\" \"%ProgramData%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\""
;!@InstallEnd@!

gora
01-10-2015, 08:15
выдается ошибка "указанный файл не найден" »
Правильно выдает.
Ваш конфиг распакует Ваш архив (предполагаю, что это папка Rainmeter) в свою временную папку (с рандомным именем которую создаст сам SFX), а не в папку %TEMP%.
Попробуйте убрать упоминание %TEMP% из конфига, ибо текущей папкой является папка распаковки, т.е. в данном случае как раз его временная папка с рандомным именем.

Desmodeus
01-10-2015, 08:18
Не работает по прежнему
;!@Install@!UTF-8!
RunProgram="hidcon:cmd /c xcopy \"Rainmeter\" \"%ProgramFiles%\\Rainmeter\" /s /e /i /y /h /r /k"
RunProgram="hidcon:cmd /c copy \"Rainmeter.lnk\" \"%ProgramData%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\""
;!@InstallEnd@!

Ошибка та же самая - файл не найден. Даже если поставить .\\ перед файлами, все равно не находит

Архив состоит из ярлыка и папки Rainmeter, да)

gora
01-10-2015, 08:27
Desmodeus, поиск неисправностей неоднократно описывался.

Первый вариант
1 удалите префикс hidcon
2 замените ключ в строке с cmd /c на cmd /k
3 начните с одной строки в конфиге, а вторую закомментируйте или удалите
После запуска смотрите, что напишет в окне консоли

Второй вариант
1 создайте батник из Ваших двух строк конфига (конечно по правилам батников, без лидирующих слешей, префиксов и прочего).
2 положите батник рядом с распакованной папкой и ярлыком и запустите батник.
После запуска смотрите, что напишет в окне консоли

Если в окне консоли будет ругань, то вопрос не к конфигу, а к написанию батников. Наши специалисты всегда помогут новичку грамотным советом в соответствующем форуме (http://forum.oszone.net/forum-102.html).

Desmodeus
01-10-2015, 10:52
Так, разобрался. Да, ошибка была в самой бат команде.

Так, а теперь как добиться того чтоб установщик сам завершался? На данный момент он после копирования зависает и остается висеть в процессах. Должна ли быть это какая-то команда в конфиге чтобы по выполнению финальной команды установочник завершался?
;!@Install@!UTF-8!
RunProgram="hidcon:cmd /k xcopy \"Rainmeter\" \"%ProgramFiles%\\Rainmeter\" /I /E"
RunProgram="hidcon:cmd /k copy \"Rainmeter.lnk\" \"%ProgramData%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\" /I /E"
;!@InstallEnd@!

gora
01-10-2015, 10:55
cmd /k »
А кто ключ /c вернет на место?

Desmodeus
01-10-2015, 11:02
А кто ключ /c вернет на место? »
Вернул. Пересобрал exe Все ещё висит в процессах по выполнению

gora
01-10-2015, 12:02
copy \"Rainmeter.lnk\" \"%ProgramData%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\" /I /E" »
1 у команды Copy нет таких ключей.
2 при необходимости перезаписи файлов команды xCopy и Copy могут выдавать запрос о перезаписи в консоль, т.к. ключей, для подавления этого запроса, у Вас в конфиге я не вижу.

Desmodeus
15-10-2015, 14:08
Так, спасибо, с этим разобрался. ЕЩё один вопрос - если я хочу чтобы мой установочник перед стартом проверял наличие .net и при необходимости его ставил, можно ли такое реализовать через файл конфигураций или же это лучше в вызываемый bat файл помещать?

gora
15-10-2015, 14:19
1перед стартом проверял наличие .net »
2его ставил »
Desmodeus, если Вы сможете написать п.1 и п.2 в одну строку батника, то можете использовать любой из вариантовреализовать через файл конфигураций или же это лучше в вызываемый bat файл помещать »
Ну а если для Вас это сложно, то начните со второго варианта (использования батника)

Leon3721
12-11-2015, 13:14
Не получается передать консоли символ "или" (в тексте как две вертикальные полоски - || ).
Часть кода:


SetEnvironment="Commands=-Параметр1 -Параметр2 -и т.д."
...
RunProgram="hidcon:cmd /c \"File1.exe %Commands%\" ||\"File2.exe %Commands%\" ||\"File3.exe %Commands%\" "


Запускается только при наличии файл File3.exe со всеми своими параметрами указанными в переменной "Commands"
Если вместо File3.exe поставить File2.exe, то он не запускается.

Через батник:

File1.exe || File2.exe || File3.exe

Запускается File1.exe, если нету File2.exe, а если нет первых 2-х, то запускается File3.exe
Как достичь того же эффекта ? Что я делаю не правильно ?
Писать \|\| пробовал. Толку 0.

Leon3721
16-11-2015, 10:56
Не дождался помощи :) Всё равно спасибо. Сам разобрался. Использовал проверку на присутствия файла:

...
RunProgram="hidcon:cmd /c if exist File1.exe (File1.exe %Commands%) else (if exist File2.exe (File2.exe %Commands%) else (if exist File3.exe (File3.exe %Commands%) else (msg * /time:20 Отсутствуют файлы для запуска ! & TaskKill /f /im \"%%M\"))) "
...

Может кому понадобиться пример.

41275jur
02-12-2015, 18:05
Здравствуйте, подскажите как можно прописать в файле конфигурации, чтобы архив Soft.7z расположенный рядом с SFX архивом распаковывался в папку с установленной программой.

gora
02-12-2015, 19:18
как можно прописать в файле конфигурации »
; автономный архиватор 7zr.exe положить внутрь sfx
; c:\soft - папка с установленной программой, куда надо распаковывать
RunProgram="hidcon:7zr.exe x \"%%S\\Soft.7z\" -o\"c:\\soft\""

41275jur
02-12-2015, 20:49
RunProgram="hidcon:7zr.exe x \"%%M\\Soft.7z\" -o\"c:\\soft\"" »

Не распаковывает.

gora
02-12-2015, 20:58
Не распаковывает. »
И все? Вы не считаете нужным что либо еще сообщить? Тогда разбирайтесь сами, я по такой фразе диагноз не ставлю.
p.s. Поправил переменную, проверьте.

41275jur
03-12-2015, 23:25
gora, Спасибо за помощь.
И все? Вы не считаете нужным что либо еще сообщить? »
Я не думал, что при вопросе – распаковка, где сборка и установка SFX архива проходит без ошибок нужно писать что-то большее.
RunProgram="hidcon:7zr.exe x \"%%S\\Soft.7z\" -aoa -o\"%SystemDrive%\\soft\""
Не знаю правильно я дописал ключ -aoa. Не хотело перезаписывать файл. После добавления этого ключа все получилось.

nibble74
09-12-2015, 16:35
gora, приветствую,

Где тут ошибка ?

SetEnvironment="SYS=%SystemRoot%\\папка"
AutoInstall="hidcon:cmd /c FOR /R %SYS% %%i IN (*.exe) DO (start %%i -параметр)"

Файл (*.exe) время от времени меняет имя, поэтому хотелось бы использовать эту команду для автоматического определения нового имени и дальнейшего запуска с -параметром

В ком строке работает, а в sfx архиве не срабатывает.

gora
09-12-2015, 16:44
В ком строке работает »
В бат файле, наверное, а не в ком. строке, ибо в конфиге, как и в ком. строке, переменная цикла (%%i) пишется в одним знаком процента (%i), а не с двумя, как у Вас.




© OSzone.net 2001-2012