Что нового

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

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 528
Репутация
325
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

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

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

Elbrain

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

 

SyDr

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

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

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

Medic84

Омега
Команда форума
Администратор
Сообщения
1 528
Репутация
325
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 166
Репутация
2 330
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
Репутация
622
Если мне не изменяет память, то для корректной работы 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
Результат к сожелению аналогичный.
 
Верх