Страница 1 из 3

Упаковка выделенного в ISO-образ

Добавлено: Пн июн 20, 2011 17:07
Rodny
Flasher писал(а):сделай плагин для упаковки в ISO выделенного
Не вижу особых проблем прямо сейчас. Для командной строки утилиты есть, воткнуть их в MultiArc...

[mod="Avada"]Выделено в самостоятельную тему отсюда. [/mod]

Добавлено: Пн июн 20, 2011 17:11
Flasher
Rodny
Выделенных элементов? Ну-ка, ну-ка. -path-list у mkisofs для cygwin не работает. CDIMAGE со списками не работает. Или ты что-то другое знаешь?

Добавлено: Пн июн 20, 2011 17:39
Rodny
Flasher писал(а):-path-list у mkisofs для cygwin не работает
Не понял, при чём тут cygwin?

Код: Выделить всё

Add=%PQA -r -J -o %AQA -path-list %LQA

Добавлено: Пн июн 20, 2011 17:42
Flasher
Rodny писал(а):Не понял, при чём тут cygwin?
Как это при чём? Без cygwin1.dll работать не будет. Это же линуховская утила.

Код: Выделить всё

Add=%PQA -r -J -o %AQA -path-list %LQA
Это что? Одна строка. А полную секцию сможешь выложить? Для кнопки, допустим, как это будет выглядеть? Сразу вопрос - у тебя работает?

Добавлено: Пн июн 20, 2011 18:23
Rodny
Flasher писал(а):Как это при чём? Без cygwin1.dll работать не будет. Это же линуховская утила.
У меня валяется mkisofs.exe из какого-то дремучего nLite.
Это что? Одна строка. А полную секцию сможешь выложить? Для кнопки, допустим, как это будет выглядеть? Сразу вопрос - у тебя работает?
Это строка упаковки для Мультиарка, ты ж плагин хотел ;)
Секцию тупо перекроил какую-то из имеющихся, оставил только упаковку. Параметры вообще не трогал.

Код: Выделить всё

[mkisofs]
Description="mkisofs - pack only"
Extension=iso
Archiver=%COMMANDER_PATH%\Plugins\WCX\MultiArc\mkisofs.exe
Add=%PQA -r -J -o %AQA -path-list %lQA
IgnoreErrors=0
Debug=0
UnixPath=0
SkipDirsInFileList=0
SkipEmptyNames=1
BatchUnpack=0
SearchForUglyDirs=1
AskMode=0
SkipLIST=1
AskHistory0=123
Аналогичные параметры для кнопки: "-r -J -o %Timage.iso -path-list %L"
Слепил чисто на пробу по примеру из вики. Файлы пакует без вопросов, каталоги не хочет. Надо, видимо, или версию поновей посмотреть, или справку почитать.

Добавлено спустя 7 минут:

И кстати, есть же какой-то TotalISO 0.9.0.55.

Добавлено: Пн июн 20, 2011 18:23
Flasher
Rodny писал(а):Файлы пакует без вопросов, каталоги не хочет.
Хм. А с кнопки не работает и со списком файлов, я разные версии раньше пробовал - и новые и постарше. Да, а назначить папку куда образ будет скидываться, можно? В Master Commander можно прямо в диалоге.
В общем, пока твоя уверенность в отсутствии проблем себя не оправдывает, так что...
За секцию спасибо, опробуем.
Rodny писал(а):И кстати, есть же какой-то TotalISO 0.9.0.55.
Стоял раньше. Какие-то с ним проблемы возникли. Да и он тоже только содержимое папки под курсором упаковывает, в таком виде мне плагин не нужен.

Добавлено: Пн июн 20, 2011 18:49
Rodny
Пожалуйста, кнопка работает и с каталогами. А хотя не совсем, так содержимое выделенных каталогов добавляется, а сами выделенные исчезают. В общем, надо всё-таки справку mkisofs посмотреть :)

Код: Выделить всё

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\WCX\MultiArc\mkisofs.exe
-o %Timage.iso -J -joliet-long %S
%COMMANDER_PATH%\TOTALCMD.EXE,3
mkisofs
%COMMANDER_PATH%\Plugins\WCX\MultiArc\

-1
Файл отсюда.
а назначит папку куда образ будет скидываться, можно?
А почему нет? Постоянную после -o прописать, в процессе спрашивать через AskParam.

Добавлено: Пн июн 20, 2011 18:59
Flasher
Rodny писал(а):Пожалуйста, кнопка работает и с каталогами.
%S - не вариант. Надо -path-list %L. %S будет паковать содержимое выделенных папок, а не сами папки.
Rodny писал(а):Постоянную после -o прописать, в процессе спрашивать через AskParam.
А на понятный язык можно перевести? Что за постоянная? Для -o имя прописывается вроде как, а не путь. Что значит спрашивать через AskParam?
Rodny писал(а):С учётом того, что я это сделал методом тыка, упорно игнорируя справку mkisofs, вполне оправдывает
Дело не в методе тыка, а в том, что названная мной фича в MC не работает как надо в указанных тобой примерах. А почитать можешь здесь.

Добавлено: Пн июн 20, 2011 19:03
MVV
Я ещё хотел предложить AskParam, но думаю, не буду вмешиваться=) Задаёшь по кнопке запуск AskParam, которая предложит путь по умолчанию (например, путь в противоположной панели), при необходимости его можно будет подправить и нажать OK/Enter для запуска упаковки.

Добавлено: Пн июн 20, 2011 19:36
Rodny
Flasher писал(а):Что за постоянная? Для -o имя прописывается вроде как, а не путь.
Постоянная папка, если для каких-то целей всегда в какую-то определённую сохраняешь. И никто же не мешает прописать полный путь вместо имени.

Добавлено: Пн июн 20, 2011 19:53
Flasher
Rodny писал(а):Постоянная папка, если для каких-то целей всегда в какую-то определённую сохраняешь. И никто же не мешает прописать полный путь вместо имени.
В описании про путь ни слова. Ладно, посмотрю. Хотя уже понятно, что это всё не даст исходного результата.

Добавлено: Пн июн 20, 2011 20:18
Rodny
Flasher
Справка кое-что прояснила. Смотри абзацы, начинающиеся с "pathspec является путем в дереве каталогов".
С опцией "-graft-points" строка с "-path-list %L" прекращает ругаться на каталоги и исправно добавляет их содержимое. Опять же, игнорируя сами каталоги. Но так оно и задумано.
mkisofs не предназначен для выполнения поставленной тобой задачи.

Возможным решением может быть обработка файла-списка в скрипте, и если текущий элемент является каталогом, то добавлять в командную строку параметров типа "каталог 1=каталог 1". Это если я правильно понял работу этой опции.

Или же нужно искать другое средство.

Добавлено: Пн июн 20, 2011 21:35
Tol!k

Код: Выделить всё

@echo off &setlocal enableextensions &chcp 1251
rem Параметры: "%T%O.iso" "%L"

rem Начинаем строить командную строку: mkisofs -опции -o "результат.iso"
set "str=mkisofs.exe -r -J -graft-points -o "%~1""

rem Для каждой строки из списка вызываем процедуру
for /f "usebackq delims=" %%l in ("%~2") do call :x "%%l" "%%l."
rem Запускаем построенную командную строку
call %str%
rem Конец работы
goto :eof

rem Процедура
:x
set "i=%~1"
rem Меняем виндовые \ на юниксовые /
set "i=%i:\=/%"
rem Если строка кончается на / (т.е. указывает на папку)
if "%i:~-1%"=="/" (
rem Добавляем к командной строке "Имя папки=D:/Путь/Имя папки/"
set "str=%str% "%~n2=%i%""
rem Иначе добавляем к командной строке просто "D:/Путь/Имя файла.ехт"
) else (set "str=%str% "%i%"")
goto :eof
пробуйте
*проблемы с именами, содержащими & и )

Добавлено: Пн июн 20, 2011 21:53
Rodny
Tol!k
Работает Изображение

Добавлено: Пн июн 20, 2011 22:02
Flasher
Rodny писал(а):С опцией "-graft-points" строка с "-path-list %L" прекращает ругаться на каталоги и исправно добавляет их содержимое.
Пробовал раньше c "-graft-points", не выходило.

Tol!k
Что-то не получается. mkisofs откуда брался?
Версия cygwin у меня 1.5.19.