in1975, ну и что, что на консоль. Ну если в окне лога проявляются такие косяки внезапно, тогда нужно всё-таки что-то с этим делать. И уж конечно обходить стороной возможные проблемы. Консоль - она и в африке консоль. Ничего такого, если будут скачиваться обновления через консоль.
А то время уже сколько прошло. А воз и ныне там. Старая утилита у многих даёт сбои, тоже то одно, то другое. Каждый день в теме жалобы.
Вон, например, моя старая PS3GameConvert_v091 не даёт же подобных сбоев. Не видел от неё таких жалоб ни у нас, ни за бугром, где поголовно ей многие пользуются. Даже стабильнее работает, чем CFW2OFW_Helper, с которой тоже у многих проблемы и куча жалоб.
У меня же нет никаких проблем с пробелами в путях, а у тебя они есть.
Потому что ты используешь извращённые методы, а не последовательность действий.
Не надо усердствовать с командой Call и Exit/b, эти команды часто дают сбои. А ты их кругом напихал, где это даже совсем не нужно, так же, как ты её пихнул даже в dirsplit_last... Вот выписка из твоего кода:
setlocal enabledelayedexpansion
for %%b in (chunk*.txt) do (
for /f "tokens=*" %%I in (%%b) do (
call :nm %%b
echo f|xcopy /T /E "%%I" "SPLITTED\!fn!\%%I" >nul
copy param.sfo "SPLITTED\!fn!\!fdir!" >>log.txt
move "%%I" "SPLITTED\!fn!\%%I" >>log.txt
)
)
echo done
exit
:nm
set fn=%~n1
exit /b
Зачем ты вытащил через call :nm %%b всего одно действие в конец файла отдельной секцией, причём с возвратом обратно.
Чтобы получить всего-лишь имя файла, ты произвёл целую махинацию.
Поэтому команда call :nm %%b вместе с переходом в другую область и возврат обратно обычно пишется простым кодом с последовательным выполнением: set fn=%%~nB
Ну и так далее... куча лишних телодвижений, причём ничем не оправданных, отсюда лишние косяки в работе программы.
Потом ты как-то спрашивал по поводу кавычек и заменил там на puch
Там кавычки вроде бы должны были передаваться из set path="c:\path"
А далее, в команде FOR они теряются, потому что выставлено на весь батник расширенное setlocal enabledelayedexpansion
Там что-то for %%I in (%path%) do ()
Так вот, в этом (%path%) должен приходить путь с кавычками, но кавычки обрезаются.
Тут нужно избавится от расширения команд setlocal enabledelayedexpansion, если в этом нет непосредственной необходимости, что в основном накладывает твоя любимая Call.
Затем нужно разрешить в скобках использование двойных кавычек вот этим - "usebackq".
В общем, пока занимаюсь своей PS3GameExtractor, просматривал твой код, увидел кучу необоснованных решений и кругом напиханное Call.
Я эту команду стараюсь обходить стороной, использую только там, где без неё по другому не обойтись, потому что ранее много раз сталкивался со сбоями из-за неё. Поэтому её выполнение приходится пихать в самый конец батника, иначе, в середине кода, команда иногда не даёт обратный возврат и почему-то читает Exit/b или EOF просто как Exit и вылетает.
Потом столкнулся с проблемой, при копировании xcopy dir%%I newdir%%I
Прога постоянно запрашивает Это файл или папка? )))
Ты же сделал хук через подтверждение, что это файл: echo F|
Дело в том, что мы даём команду на копирование файла из одной папки, как тот же файл в другую папку.
Хотя должны копировать файл из одной папки в другую папку. То есть, должны копировать файл в папку, а не файл в файл!
Посмотри мой код в ISS, как я это реализовал. Я просто у конечного файла обрезал имя файла:
set pn=%%~I
xcopy /y "!fnm!\%%~I" "!tmp!\SPLITTED\!fn!\!pn:%%~nxI=!"
И, кстати, батник у меня создаётся динамически.
Я создал листинг всех строк батника в ISS
А потом в батнике сделал переменные, которые берутся из основной программы и батник потом создаётся в папке %TEMP% с указанными пользователем переменными в программе, там путь к выбранной папке, размер папки для деления, вообщем динамические свойства. Ты можешь посмотреть как сохраняется батник в папке %TEMP% и как там разворачиваются пути из переменных.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 06.10.2018 в 18:56.
in1975, сама консоль CMD знаешь какую имеет кодировку? Правильно: cp866
Если ты через батник собираешься передавать и отлавливать пути в русской раскладке, тогда и батник должен быть в кодировке cp866.
А зачем ты изменил мою кодировку cp866 на windows-1251 и вписал в начале chcp?
Конечно у тебя начнутся проблемы с несоответствием консоли CMD cp866 с windows-1251, даже с русскими путями.
Поэтому ты и занимаешься такими вот извращениями:
Где символ доллара $, одинарные кавычки ', косые ` и т.п. нужно ещё экранировать.
И потом, неизвесто какая у юзера на компе стоит кодировка, даже если винда русская, может быть чел использует LangPack.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
in1975, ну я смотрел твою 3.0 Альфа. Почему тогда каждый день один за другим в теме появляются сообщения, что прога вылетает или стоит на месте или ещё чего там.
От тебя же летят советы, типа вон там пробел в пути. Это же бред, указывать на пробелы. Я понимаю там спецсимволы, которые прога может интерпретировать как служебный программный код. Но ты вроде бы с этим боролся, выставил подмену, иероглифов начеркал. Тогда почему и на них спотыкается программа?
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
ErikPshat, дело не в батнике совершенно. Про спецсимволы я уже давно защиту сделал. И экранировать в том цикле нельзя, там каждый символ подставляется, если ты не заметил
in1975, и вот это уже убери из консоли, а то напрягает уже на экране мелькать:
Make pkg han tool v.3.0
Created mod by In1975 for site pspx.ru
Modded by & rupor & ErikPshat & BaseD
_______________________________________
-= DONE =-
-------------------BIG thanks for PS3XPLOIT TEAM----------------------------
For HAN tools by W, escortd3w, bguerville, habib and Specialy Joonie
For RESIGNER ACT.DAT/RIF/ENC/EDAT/CONFIG PS2/PSX/PSP content for PS3
For PSPx Team for this utility: in1975, hexcsl, Alex_1985, ErikPshat, BaseD
----------------------------------------------------------------------------
Оставь в конце только -= DONE =-
Просто есть же меню "О программе", поэтому в этих кредитах необходимость отпала.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Похоже выловил ошибку которая крашила ехе. Тестите.
А я что-то не понял юмора. Закинул тестовую папкку NPUB30826 (Assassin's Creed® III [NPUB30826] ver1.07)), пытался сконвертировать, он и патч не начал скачивать и при конверте какую-то белиберду начал выдавать.
Потом нажимаю кнопку "Проверить наличие патча". Он мне пишет:
Check path for ПРОВЕРИТЬ
==============================================
Not find game update. Sorry...
==============================================
Через PS3 Game Updates показывает один патч.
Или в проге заблокировано скачивание патчей для NP игр и их конвертирования?
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Ну так нужно проверять ситуации, как бы мог поступить просто-юзер.
По идее прога должна была хотя бы скачать обновление или сообщить, что обновление имеется, но вы конвертировать PSN-игру не можете.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Такая беда и в версии 2.9 и в альфе тоже.
Интересно как у людей при этом работает соединение с PS3?
Вот кусок от 2.9.2 (тут работает)
2.9.2
:63
echo Create Pkg List... |%col% 0A
set curd=%cd%
%pklm%
cd %tls%
call :makepkg
call :5
move /Y %tls%\*.pkg %curd%\Package_List.pkg >>log.txt
cd %curd%
if exist port.ini (set /p port=<port.ini) else (set port=80)
if exist ip.ini (set /p ips=<ip.ini) else (set ips=)
set hs=.\\tools\hfs.exe -c ip=%ips%\nport=%port% .\\tools\PS3Xploit_files\ .\\tools\icons .\\tools\flags
for %%j in (*.pkg) do set hs=!hs! .\\%%j
echo Run Server... |%col% 05
start /B %hs%
goto :end
Это от альфы (тут не работает)
Альфа
:63
echo Create Pkg List...
echo run %pklm%
%pklm%
cd "%tls%"
set ts=.\
set conf=!ts!package.conf
call :makepkg
call :5
move /Y *.pkg "%curd%\Package_List.pkg" >>!logs!
cd %curd%
set name=Host
set prt=port
for /f "tokens=1,2 delims==" %%a in (config.ini) do (
set nm=%%a
if !nm!==!name! set ips=%%b
if !nm!==!prt! set port=%%b
)
set hs=.\\tools\hfs.exe -c ip=%ips%\nport=%port% .\\tools\PS3Xploit_files\ .\\tools\icons .\\tools\flags
for %%j in (*.pkg) do set hs=!hs! .\\%%j
echo Run Server...
start /B %hs%
goto :end
P.S Кстати нашел пару вариантов с мигающем текстом у товарищей на форуме.
Попробовал самый первый, все тоже самое что и было, только без "Парсера"
Там и таймер, по идее можно запускать только тогда, когда открывается окно "О Программе", а так он работает постоянно при старте.
Последний раз редактировалось BaseD; 21.10.2018 в 10:19.
Я не понимаю смысла в этом украшательстве с левым слешем:
set hs=.\\tools\hfs.exe -c ip=%ips%\nport=%port% .\\tools\PS3Xploit_files\ .\\tools\icons .\\tools\flags
Если его нужно экранировать, тогда надо это делать везде, а не выборочно через раз.
А если везде нет необходимости, тогда значит нигде нет такой необходимости.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Можно производить сравнение по хеш-сумме, или размеру файла.
Правда с хеш-суммой, что то не то
Пример на 3.0 запакованной (beta-30.7z), один файл на сервере, другой (уже скачанный) рядом с программой.
Последний раз редактировалось BaseD; 24.10.2018 в 17:53.