Что нового

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

SyDr

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

ConsoleWrite($sRun & ' ' & $sOptions & ' ' & $sFilePath & ' ' & $sFiesToAdd & @CRLF)
RunWait($sRun & ' ' & $sOptions & ' ' & $sFilePath & ' ' & $sFiesToAdd, Default, @SW_HIDE)

Запусти это через SciTE. В логе будет строка - с какими параметрами запускался 7-zip.
Скопируй её и выполни из обычного окна cmd. Что пишет 7-zip?
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
Результат снова нулевой.
Правда я не понял Вашего последнего поста, последовательности действий.
Я делаю так - копируй скрипт в SciTE. Там сохраняю скрип в формате .au3 в папку 7z.
Копиру в папку 7z ресурсы(мои). Тоесть в папке 7z у меня уже всё есть, тогда я нажимаю правой кнопкой мышки на файл.au3 и компилирую его. В результате получаю .ехе через который и пытаюсь работать.
Вот логи запуска из Scite
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Program Files\7-Zip\Install X-mod 0.93.au3"
C:\Program Files\7-Zip\7z.exe a -tzip -r -y "C:\Program Files\Majesty2\resource\resource.pak" "C:\Program Files\7-Zip\Resource\*"
>Exit code: 0 Time: 5.759
 

SyDr

Сидра
Сообщения
651
Репутация
158
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Program Files\7-Zip\Install X-mod 0.93.au3"
C:\Program Files\7-Zip\7z.exe a -tzip -r -y "C:\Program Files\Majesty2\resource\resource.pak" "C:\Program Files\7-Zip\Resource\*"
>Exit code: 0 Time: 5.759

Выделенную строку следует запустить из командной строки. (C:\Program Files\7-Zip\7z.exe также следует взять в кавычки)
Командная строка находится в меню пуск -> стандартные.
 
Автор
E

Elbrain

Новичок
Сообщения
11
Репутация
0
Вылетает с ошикой от 7z incoret comand line
 

SyDr

Сидра
Сообщения
651
Репутация
158
Это плохо. Даже не могу представить, в чём причина. У меня это отрабатывает нормально.
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
не знаю решил ли ты вопрос или нет, но как то сам делал инстолятор уже обновленной игры где ресурсы хранили в подобных файла(контейнерах) так вот ничего лучше не нашел как :rofl:elta3 все элементароно:

Код:
Make patch:
xdelta3.exe -e -s old_file new_file delta_file

Apply patch:
xdelta3.exe -d -s old_file delta_file decoded_new_file

old_file - необновленный resource.pak
new_file - (сам ручками у себя обновишь resource.pak через rar или 7z ) resource.pak
Delta_file - это собственно ПАТЧ к старому resource.pak у пользователей :smile:
decoded_new_file - на выходе будет обновленный resource.pak

чесно скажу лучше ничего не нашел... м\б кто найдет лучше способ т.к. тут все равно предлагается использование сторонних программ типа 7z и Rar то я только буду рад и обогащен новыми знаниями :smile:

собственно код для пользователей
Код:
$sOptions = '-df -s' ;ключики утилиты delta3.exe
$sRun = @ScriptDir & '\xdelta3.exe' ; утилита патчинга
$sFiesToAdd = '"' & @ScriptDir & '\Delta_file' ; это файл патча к Resource.pak
$sFilePath = '"' & FileOpenDialog("Выберите файл Resource.pak", "", "(Resource.pak)", 1, "Resource.pak") & '"'
If @error Then Exit

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


SyDr - код твой, немного поправил извиняй за копипост ;)

сайт утилиты http://:rofl:elta.org/

p.s. создатели\локализаторы игр типа 1С и Руссобит используют именно эту утилиту :smile:
 

SyDr

Сидра
Сообщения
651
Репутация
158
Guezt [?]
SyDr - код твой, немного поправил извиняй за копипост
wink.gif

сайт утилиты http://:rofl:elta.org/
p.s. создатели\локализаторы игр типа 1С и Руссобит используют именно эту утилиту
smiley.gif
Ничего страшного :smile:
Наоборот, если именно этой утилитой всё пакуется - её использование здесь предпочтительнее.
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
Ничего страшного :smile:
Наоборот, если именно этой утилитой всё пакуется - её использование здесь предпочтительнее.

Пакует то быстро... код вроде верный, но попробывал, почему то не работает(думаю проблема в подстановке ключей и получений длинных путей типа Program Files\.... через батник все идеально работает через автоит не хочет либо я где-то накосячил :(
 

SyDr

Сидра
Сообщения
651
Репутация
158
Сижу и думаю... А почему это путь к архиватору не взят в кавычки? Может в этом и была ошибка?
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
SyDr сказал(а):
Сижу и думаю... А почему это путь к архиватору не взят в кавычки? Может в этом и была ошибка?

Проверял... весь день сегодня по всякому... если вот выбирать в папке C:\test\resource.pak то работает... может есть какой скрипт на AutoIt или UDF преобразующий пусть в вид "C:\Progra~1\Myprog~1\Resour~1.pak" ? :(
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Код:
$sFiesToAdd = '"' & @ScriptDir & '\Delta_file' & '"'; это файл патча к Resource.pak

Забыл закрывающую кавычку
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
Kaster сказал(а):
Код:
$sFiesToAdd = '"' & @ScriptDir & '\Delta_file' & '"'; это файл патча к Resource.pak

Забыл закрывающую кавычку

Да проверял и в лог писал строчку и consolewrite() добавлял не хочет и все надо что бы строка была DOS формата или как правильно в общем не более 8 знаков название...
 
Верх