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

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

http://fy.chalmers.se/~appro/linux/DVD+RW/tools/win32/
работает без cygwin1.dll
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k
Взял один exe-шник, кинул с батником в одну папку, прописал параметры, выделил, нажал - по нулям. :(
Win7 x86.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Ну, а сообщения какие пишет?
Win7
Я не могу проверить
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k писал(а):Ну, а сообщения какие пишет?
Сообщений никаких, в консоли, например.
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\WCX\MultiArc\mkisofs.cmd
"%T%O.iso" "%L"
C:\Windows\System32\imageres.dll,-68
mkisofs
%COMMANDER_PATH%\Plugins\WCX\MultiArc\

-1
Работает на Win7 x86
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Rodny писал(а):Работает на Win7 x86
Значит у меня с системой что-то, не знаю. Кстати, в папку" MultiArc" зачем положил?
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

Flasher писал(а):Кстати, в папку" MultiArc" зачем положил?
Так я ж с него начинал эксперименты, там файл и остался.
[s]У тебя после -o пробела нету, может здесь причина?..[/s] Нет, так у меня тоже работает.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Rodny писал(а):Так я ж с него начинал эксперименты, там файл и остался.
Понятно.
Rodny писал(а):Нет, так у меня тоже работает.
Опередил. Батник-то я не трогал в этом смысле, а больше править и негде.
Там строка set "str=mkisofs.exe -r -J -graft-points -o"%~1"". Пробел, естественно, никуда не делся.

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

А, второе-то окно выдало:
"mkisofs.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Нашёл причину. По привычке путь запуска затёр. :D

Tol'k, спасибо. Жаль, конечно, что там, где попадаются скобки, то не пакует. Было бы неплохо поправить, ведь это не проблема программы.
А можешь расписать алгоритм? Попробую в скрипте воплотить.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Прокомментировал
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k
Можно разжевать?:
Добавляем к командной строке "Имя папки=D:/Путь/Имя папки/"
Что это даёт?
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Дык
Rodny писал(а):Возможным решением может быть обработка файла-списка в скрипте, и если текущий элемент является каталогом, то добавлять в командную строку параметров типа "каталог 1=каталог 1".
Иначе добавляется не папка, а её содержимое
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

И что, прям в комстроке так и прописывать со знаком равенства? Я что-то ничего подобного не находил в мануале.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Ну да Изображение

Кстати, в батнике ошибка. Должно быть set "str=%str% "%~nx2=%i%""
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

Flasher писал(а):И что, прям в комстроке так и прописывать со знаком равенства? Я что-то ничего подобного не находил в мануале.
Rodny писал(а):Смотри абзацы, начинающиеся с "pathspec является путем в дереве каталогов"
до "mkisofs может быть запущено на системах Win9X/NT4" :wink:
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Сделал вчера (т.е. уже позавчера), а выложить забыл... :)

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

' Упаковать выделенные файлы и папки в ISO-образ
' vbs-файл положить в одну папку с mkisofs.exe
' Параметры: %L "<Путь_назначения>\"
' Пример: %L "%T"
'=============================================
Name = InputBox("Введите имя ISO-файла:", "Создание образа ISO из выделенного списка")

If Len(Name) = 0 Then WScript.Quit
On Error Resume Next
With CreateObject("Scripting.FileSystemObject")
  For Each F In Split(.OpenTextFile(WScript.Arguments(0), 1).ReadAll, vbNewLine)
    If .FolderExists(F) Then Str = Str & " """ & .GetFolder(F).Name & """=""" & F & """"
    If .FileExists(F) And Len(.GetFileName(F))<=103 Then Str = Str & " """ & F & """"
    If .FileExists(F) And Len(.GetFileName(F))>103 Then Str = Str & " """ & Left(.GetBaseName(F), Len(.GetBaseName(F))+103-Len(.GetFileName(F))) & "." & .GetExtensionName(F) & """=""" & F & """"
  Next
End With
Str = Replace("""" & Wscript.Arguments(1) & Name & ".iso"" " & Str, "\", "/")
With CreateObject("WScript.Shell")
  .Run "mkisofs.exe -quiet -r -f -joliet-long -nobak -graft-points -o " & Str, 0, True
  .Popup "Образ создан!", 1, "Результат", 64
End With
Нет проблем с символами и точками в названиях.

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

Tol!k, спасибо, что расписал, а то пришлось бы время лишнее тратить на расшифровку.
Rodny, потом сам увидел, спасибо за повторный тык.
Последний раз редактировалось Flasher Ср июл 20, 2011 02:20, всего редактировалось 3 раза.
Ответить