Упаковка выделенного в ISO-образ
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Сообщений никаких, в консоли, например.Tol!k писал(а):Ну, а сообщения какие пишет?
Код: Выделить всё
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
Понятно.Rodny писал(а):Так я ж с него начинал эксперименты, там файл и остался.
Опередил. Батник-то я не трогал в этом смысле, а больше править и негде.Rodny писал(а):Нет, так у меня тоже работает.
Там строка set "str=mkisofs.exe -r -J -graft-points -o"%~1"". Пробел, естественно, никуда не делся.
Добавлено спустя 29 минут:
А, второе-то окно выдало:
Нашёл причину. По привычке путь запуска затёр."mkisofs.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Tol'k, спасибо. Жаль, конечно, что там, где попадаются скобки, то не пакует. Было бы неплохо поправить, ведь это не проблема программы.
А можешь расписать алгоритм? Попробую в скрипте воплотить.
Сделал вчера (т.е. уже позавчера), а выложить забыл...
Нет проблем с символами и точками в названиях.
Нужно также иметь в виду, что у формата записи Joliet допустимая длина в именах составляет 64 символа, поэтому файлы, которые этому не удовлетворяют по логике должны сохраняться с обрезанным именем, включая расширение. Я этот момент поправил, теперь обрезается только имя без расширения.
Tol!k, спасибо, что расписал, а то пришлось бы время лишнее тратить на расшифровку.
Rodny, потом сам увидел, спасибо за повторный тык.
Код: Выделить всё
' Упаковать выделенные файлы и папки в 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 раза.
