Что нового

Работа с архивами.

Elbrain

Новичок
Сообщения
11
Репутация
0
Привет всем, ребята такая ситуация, есть .exe файл установки(нужных мне файлов), все эти файлы в ехе весят ~1мб, нужно реализовать, что бы мой .ехе записывал в архив, тоесть открывал архив, переписывал бы файлы, закрывал архив. Если это можно реализовать без полной распаковки/запаковки архива еще лучше, так как он зараза весит 500 метров.
Можете подсказать скрипт для реализации? Или метод?
Нужно очень срочно, пожалуйста выручите.
 

SyDr

Сидра
Сообщения
651
Репутация
158
Re: Нужен скрипт.

Каков вопрос - таков ответ.
Архив каким образом получал? Архиватором? Правильно? Так вот, архиватором его же можно и обновить. Читай ключи запуска своего архиватора.
Пример для 7-zip'а:
7z u archivename.zip filetoupdate1 filetoupdate2 "file to update 3" CAR\*.xls D:\asd.dfg
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Re: Нужен скрипт.

Предупреждение 1. НАзвание темы НЕ содержательное! Переименуйте тему!

P.S. Мое терпение неминуемо кончается. Скоро буду выписывать предупреждения
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
Re: Нужен скрипт.

Архив ресурсов(расширение .pak) это часть файлов установленной ранее игры.

Извините за мою тупость, но дальше я Вас не понял.
Так вот, архиватором его же можно и обновить. Читай ключи запуска своего архиватора.
Пример для 7-zip'а:
7z u archivename.zip filetoupdate1 filetoupdate2 "file to update 3" CAR\*.xls D:\asd.dfg
А если у пользователя на компьютере не будет 7z? У меня например нету, нужен именно ехешник, с одним диалоговым окном, а далее всё должно быть автоматически.
Вот такая вот нелёгкая задача><
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Re: Помогите решить проблему с инсталяцией.

Не понятно, какой архив.
Если же zip, то: Zip UDF
По поводу других, либо архиватор.exe с параметрами.
(Точно не знаю, эксперты поправят) Либо, если есть возможность через dll этих же архиваторов.
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
Re: Помогите решить проблему с инсталяцией.

22633247c59d.jpg
 

SyDr

Сидра
Сообщения
651
Репутация
158
Re: Помогите решить проблему с инсталяцией.

Elbrain [?]
Извините за мою тупость, но дальше я Вас не понял.
Дело не в тупости, а в недостаточном количестве сведений.
Данный скриншот ничего не даёт.
Нужно знать формат архива, а не расширение файла. WinRar'ом можно его обновить? (Добавить файлы, извлечь).

P. S. Тему лучше переименуй. Сформулируй запрос нормально.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Re: Помогите решить проблему с инсталяцией.

SyDr [?]
P. S. Тему лучше переименуй. Сформулируй запрос нормально.
Да, а то я удалю :smile:
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
Re: Помогите решить проблему с инсталяцией.

SyDr сказал(а):
Дело не в тупости, а в недостаточном количестве сведений.
Данный скриншот ничего не даёт.
Нужно знать формат архива, а не расширение файла. WinRar'ом можно его обновить? (Добавить файлы, извлечь).

P. S. Тему лучше переименуй. Сформулируй запрос нормально.
Да, Винрар отлично добавляет, извлекает файлы.
Сведений в интернете много, а времени катострофически мало, на работе завалы. Я бы с удовольствием сам попытался разобраться, будь у меня свободная неделька, но таковой нету. Поэтому очень надеюсь на вашу помощь, хотя бы направлением на путь истинный.
Medic84, извините. Я вроде переименовал тему, но ввиду того, что я не знаю, что мне конкретно нужно, я не могу сформулировать более точное название темы чем теперешние)
 

SyDr

Сидра
Сообщения
651
Репутация
158
Re: Помогите решить проблему с инсталяцией.

Majesty 2 - работа с архивами игры.

Значит так, для работы тебе понадобиться консольная версия WinRar (В папке с программой - rar.exe)
Код:
Run(...) ; или
RunWait(...)


Командная строка для указанных целец выглядит так:
rar a -y Archive.pak File1.txt File2.txt "File 3.txt" SDF\*.xls

Расшифровываю:
rar - сам винрар;
a - добавить файлы в архив
-y - отвечать да на все запросы.
Archive.pak - имя архива
File1.txt File2.txt "File 3.txt" SDF\*.xls - список файлов.

Всё что остаётся, запустить Рар с необходимыми параметрами
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
Или Вы меня не поняли, или я Вас. Код написал в батник, прогнал через рар, он мне сделал архив.
А толку? Мне не нужен архив, далеко не у всех есть тот же винрар, мне нужен универсальный инсталятор. Честно говоря я даже не понял, что мне с этим архивом делать? Ведь он тоже не собирается устанавливаться в другой архив типа рар. Тогда к чему это всё? непойму.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Elbrain [?]
далеко не у всех есть тот же винрар, мне нужен универсальный инсталятор
7z как раз то что тебе нужно. Это бесплатная утилита которую можно поместить в exe'шник скрипта, и распаковывать её при необходимости.
А что касается инсталлятора и записи в сам exe'шник (есть подозрение что именно это и нужно), то см. тему [Новая функция] Запись в саму себя.
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
У меня уже опускаются руки..а жаль. Друзья, давайте я попробую еще раз Вам всё обьяснить. А вы скажите только, что мне читать и в чём работать.

Последовательность :
Имеем
Есть resource.pak весом 500 мб.
Есть моя папка resource с изменеными файлами(все пути теже) вес 200кб.

Все файлы из моей папки надо поместить в архив.pak. Но всё это должно быть автоматизированно, ибо пользователи тупят и наотрез отказываются пользоватся WinRar`om или TotalCommander`om. Самый лучший вариант запаковать всё в exe. Это я делал в разных программах. Пробовол много вариаций реализации. Но записи в архив не смог добится.
Нужен инстал или SFX инстал , разницы нету. Просто нужен инсталятор, с диалоговым окном для установки пути к resource.pak.

Как я понимаю обычными инструментаии этого добится нельзя. Недельные поиски недали никаких плодов.
Пожалуйста, направте меня на путь истинный.

Ps а как насчет патчеров?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Итак, тебе надо передать пользователю следующие файлы (может варьироваться):
Архиватор (консольная версия)
Папка с изменёнными ресурсами
Программа/скрипт, производящая(ий) необходимые изменения

Пользователь может только в диалоговом окне выбрать файл, необходимый для патчинга.

Вариант, когда файлы навиду, устраивает?

Рядом со скриптом должны находиться:
7z.exe (rar.exe) - архиватор
\Resource\*.* - изменённые ресурсы

Код:
$sOptions = 'a -r -y'
$sRun = @ScriptDir & '\7z.exe'
$sFiesToAdd = '"' & @ScriptDir & '\Resource\*"'
$sFilePath = '"' & FileOpenDialog("Выберите файл Resource.pak", "", "(Resource.pak)", 1, "Resource.pak") & '"'
If @error Then Exit

RunWait($sRun & ' ' & $sOptions & ' ' & $sFilePath & ' ' & $sFiesToAdd, Default, @SW_HIDE)
MsgBox(4096, "", "Готово!")
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
Всё равно к сожелению не работает. Пишет готово, но увы ничего не перезаписывает. Спасибо за помощь, начинаю понимать принцип действия. Может подскажете литературу по AutoIt -- именно связанную с установкой/инсталяторами. Тоесть Ваш код я читаю без проблем, нету знаний именно команд AutoIt.
Надеюсь Вы меня поняли. Еще раз спасибо.
А где ошибка в скрипте я к сожелению так и не понял.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Если мне не изменяет память, то для корректной работы 7z помимо exe нужен 7z.dll.
Elbrain
попробуй его тоже поставить рядом со скриптом, хотя, если у тебя 7z установлен, то не должен заметить разницы. это заметно только на машинах без установленного архиватора
 

SyDr

Сидра
Сообщения
651
Репутация
158
Мне аж самому стало интересно :smile:
Давай так:
Делаешь копию архива. Удаляешь почти всё из него (так, чтобы архив стал весить несколько сот килобайт). Урезанную копию вместе с изменёнными файлами предоставляешь нам.


По поводу обучения: в справке есть раздел Tutorials. Его вполне достаточно, чтобы начать писать простенькие скрипты автоматизации (типа автоустановки приложения и т.п.).

Kaster, вполне возможно. Хотя для последних версий 7-zip это уже неактуально.
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
Ссылка - http://narod.ru/disk/15563139000/files.zip.html
Kaster, нет, с этим вроде всё нормально.
 

SyDr

Сидра
Сообщения
651
Репутация
158
Блин. А ларчик просто открывался >_<
Код:
$sOptions = 'a -tzip -r -y'

Это все отличия. По умолчанию архиватор определяет тип архива по расширению.
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
Результат к сожелению аналогичный.
 
Верх