Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 58
Сообщений: 47,507
Вы сказали Спасибо: 27,822
Поблагодарили 43,414 раз(а) в 12,366 сообщениях
Сила репутации: 10Репутация: 42605 
(репутация неоспорима)
|
Сообщение от rupor
Т.к. в переменной var отсутствует полный путь к файлу PKG, то PS3P_PKG_Ripper думает что он лежит с ним в одной папке и не найдя выдает ошибку "Файл не найден". (на скрине который я скидывал выше это видно.)
|
Много текста: 
Давай разберём: начинается вот с этого:
%temp%\ISO2BACKUP\fto "set PKGNAME=" "%CD%\*.PKG" "Select PKG Files" /multiselect> %temp%\temp.cmd
- Натравливаем на утилиту fto (FileToOpen) переменную PKGNAME, которая подменяет пути к файлам из "%CD%\*.PKG".
- "%CD%\*.PKG" - [в кавычках - значит учитываются пробелы в названиях файлов], открывается папка в проводнике, откуда запускался патчер и предлагает выбрать PKGs множественно, за это отвечает параметр [/multiselect]. В проводнике можно перемещаться в любое место на ЖД.
- "Select PKG Files" - просто текст, который появляется в заголовке окна.
- %temp%\temp.cmd - в этот файл сохраняется результат выборки *.PKG. Можешь его посмотреть, там должны быть прописаны полные пути в кавычках к каждому PKG через пробел. Именно эти полные пути, каждый в кавычках, подставляются вместо переменной %PKGNAME%.
Сообщение от rupor
for /f "delims=" %%i in ('dir /b/s/a-d %PKGNAME%^|sort /+44') do set "var=%%~nxi"&call :pr
pause&exit /b
:pr
%temp%\ISO2BACKUP\PS3P_PKG_Ripper -o "%var:~7,9%" "%var%"
|
- Здесь пакетная обработка. В качестве переменной выступает %%i, в эту переменную пакетно подставляются полные пути из %PKGNAME% (уже в кавычках), происходит сортировка файлов по имени.
- set "var=%%~nxi"&call :pr - назначаем var замещаемой переменной, которая равна полному пути вместе с именем файла и расширением. Ставим прыжок на исполняемый код.
- %temp%\ISO2BACKUP\PS3P_PKG_Ripper -o "%var:~7,9%" "%var%" - из переменной "%var%" травим на PS3P_PKG_Ripper.exe файлы (с полными путями) с пакетным перебором и на выходе -o получаем от имени файла только название от 7-го символа в количестве 9 знаков.
Эмм, это я сам для себя разобрал код. Вроде всё правильно. У меня есть подозрение, что у тебя в полных путях к файлам PKGs где-то есть незаконный символ, может кириллица, может восклицательный знак. Я замечал, что PS3P_PKG_Ripper.exe очень капризная на сторонние символы в путях и в именах файлов.
Сообщение от rupor
ошибка про Folder not empty.
|
Это я добавил проверку, чтобы в папке не было случайно забытых папок BLES/NPEG от предыдущих компиляций. Потому что, если какая-то присутствует, то не получится переименовать например PS3_GAME в NPEG.
Ошибка у тебя наверное выскакивает после распаковки, потому что следом идёт переименование ":: Переименовываем папку BLUS/BLES в NPUB/NPEB"
А там перед переименованием стоит проверка на наличие папки NPxxxxxxx, потому что BLES должна переименоваться в NPEG
if exist %NAME% (
%temp%\ISO2BACKUP\wpt "STOP" "Folder not empty. Please, remove the folder NP" Ok x
del %temp%\1.tmp
goto :end
)
Ну и потом, возможно ты выбираешь PKG не для дисковых версий игр, а для PSN-версий, которые имеют в названии вместо BLES - NPEG. Конечно такие PKGs будут распаковываться под таким же названием NPEG12345, на что проверка будет ругаться, что присутствует папка NP.
Этот момент у меня пока под вопросом ???, т.к. я тестировал несколько игр ISO и на разных патчах для этих игр и других. Всегда встречал в поиске к играм в названии именно BLES/BLUS.
Потом, можно ведь отдебажить процесс выполнения скрипта. Исходники батники в чистом виде есть...
Это для тех, кто интересуется работой батника... - Нужно открыть новое окно проводника и ввести в адресную строку %TEMP%
- Откроется папка временных файлов, там наверняка всё засрано гигабайтами, можно всё удалить подчистую. В случае использования системой кое-каких временных файлов, будет выдаваться запрос, что файл используется, нужно поставить галочку типа применить для всех таких файлов и выбрать "Пропустить". Короче, просто почистите папку TEMP, потому что там многие программы оставляют свои хвосты и за собой не убирают - при установке, при работе, при вылетах остаются неудалённые файлы потому что программа вылетела и не смогла за собой прибрать.
- Запустите патчер, в папке TEMP вы увидите появившуюся папку ISO2BACKUP с необходимыми утилитами. Заберите её, потому что патчер при закрытии её уберёт. Закройте патчер.
- Из src возьмите файл Test01b.bat и пройдитесь поиском на слово DEL, закомментируйте строчки с del знаком двойных двоеточий :: в начале строки. Проставьте паузы (pause) между прокомментированными блоками, чтобы программа останавливалась и имелась возможность проверить, что она написала во временных файлах в папке TEMP.
- Верните ISO2BACKUP на место и работайте через батник.
Последний раз редактировалось ErikPshat; 18.11.2016 в 21:14.
Причина: :p
|