[SCRIPT]Ajouter ou sauvegarder votre système à la HFSBox(SP)

Vous trouverez ici les développements et les logiciels faits maison et qui répondent au mieux à nos besoin.

Modérateur : Modérateurs

Avatar de l’utilisateur
tutor59
Virtuose
Virtuose
Messages : 1270
Inscription : 08 oct. 2014 - 01:00
A remercié : 119 fois
A été remercié : 176 fois

[SCRIPT]Ajouter ou sauvegarder votre système à la HFSBox(SP)

Message par tutor59 » 17 août 2017 - 10:45

ATTENTION, VERSION BETA !!!!
Hello,

Je m'étais fait un petit script en batch que je vous propose. Ca doit fonctionner mais c'est du beta !
(merci à un modo de déplacer le sujet si nécessaire, je ne suis pas sûr que ce soit le bon endroit)
Ce script permet comme vous allez le voir, de rajouter un système d'une ancienne box à une nouvelle box mais aussi de réaliser une copie de sauvegarde d'un système.

Vous avez intallé votre hfsbox, ça a été fait aux petits oignons, vous avez installé vos propres systèmes,
cooool......
Et puis vous voulez installer la dernière version de la HFSBox(SP), toute belle, toute propre, sans bug à 99%.
Oui mais vous avez installé vos systèmes, configurer xpadder et vous voulez réinstallé tout ça sur la nouvelle HFSBox(SP)...
Alors que faire ?
Ce petit script en batch est fait pour vous.

Comment ça marche ?
Il vous faut créer deux fichiers .bat que vous mettez dans le dossier que vous voulez.
Le premier fichier se nomme addsystem.bat et contient les commandes de copier ou déplacer des répertoires de votre système. Le voici :

Code : Tout sélectionner

::addsystem action src dest system emulator
@echo off 
chcp 28591 > nul

if /i "%~1"=="copy" (
	set "command=robocopy /E"
)else (
	set "command=robocopy /E /MOVE"
)
set addsrc=%~2
set adddest=%~3
set addsystem=%~4
set addemulator=%~5

echo.command=%command%
echo.addsrc=%addsrc%
echo.adddest=%adddest%
echo.addsystem=%addsystem%
echo.addemulator=%addemulator%

::déplacer ou copier les données du systeme
@echo off 
%command% "%addsrc%\Databases\%addsystem%" "%adddest%\Databases\%addsystem%"
%command% "%addsrc%\Emulators\%addemulator%" "%adddest%\Emulators\%addemulator%"
%command% "%addsrc%\Media\%addsystem%" "%adddest%\Media\%addsystem%"
%command% "%addsrc%\RocketLauncher\Media\Artwork\%addsystem%" "%adddest%\RocketLauncher\Media\Artwork\%addsystem%"
%command% "%addsrc%\RocketLauncher\Media\Backgrounds\%addsystem%" "%adddest%\RocketLauncher\Media\Backgrounds\"%addsystem%"
%command% "%addsrc%\RocketLauncher\Media\Bezels\%addsystem%" "%adddest%\RocketLauncher\Media\Bezels\%addsystem%"
%command% "%addsrc%\RocketLauncher\Media\Controller\%addsystem%" "%adddest%\RocketLauncher\Media\Controller\%addsystem%"
%command% "%addsrc%\RocketLauncher\Media\Fade\%addsystem%" "%adddest%\RocketLauncher\Media\Fade\%addsystem%"
%command% "%addsrc%\RocketLauncher\Media\Guides\%addsystem%" "%adddest%\RocketLauncher\Media\Guides\%addsystem%"
%command% "%addsrc%\RocketLauncher\Media\Manuals\%addsystem%" "%adddest%\RocketLauncher\Media\Manuals\%addsystem%"
%command% "%addsrc%\RocketLauncher\Media\Menu Images\%addsystem%" "%adddest%\RocketLauncher\Media\Menu Images\%addsystem%"
%command% "%addsrc%\RocketLauncher\Media\Moves List" "%adddest%\RocketLauncher\Media\Moves List" "%addsystem%.dat"
%command% "%addsrc%\RocketLauncher\Media\System" "%adddest%\RocketLauncher\Media\System" "%addsystem%.png"
%command% "%addsrc%\RocketLauncher\Modules\%addsystem%" "%adddest%\RocketLauncher\Modules\%addsystem%"
%command% "%addsrc%\RocketLauncher\Profiles\Xpaddder\%addsystem%" %adddest%\RocketLauncher\Profiles\Xpaddder\%addsystem%"
%command% "%addsrc%\RocketLauncher\Settings\%addsystem%" "%adddest%\RocketLauncher\Settings\%addsystem%"
%command% "%addsrc%\RocketLauncher\RocketLauncherUI\Databases\%addsystem%" "%adddest%\RocketLauncher\RocketLauncherUI\Databases\%addsystem%"
%command% "%addsrc%\RocketLauncher\RocketLauncherUI\Settings\%addsystem%" "%adddest%\RocketLauncher\RocketLauncherUI\Settings\%addsystem%"
%command% "%addsrc%\Media\Main Menu\Images\Wheel" "%adddest%\Media\Main Menu\Images\Wheel" "%addsystem%.*"
%command% "%addsrc%\Media\Main Menu\Images\Themes" "%adddest%\Media\Main Menu\Images\Themes" "%addsystem%.zip"
%command% "%addsrc%\Media\Main Menu\Video" "%adddest%\Media\Main Menu\Video" "%addsystem%.*"
%command% "%addsrc%\roms\%addsystem%" "%adddest%\roms\%addsystem%"
%command% "%addsrc%\Settings" "%adddest%\Settings" "%addsystem%.ini"
::
::Copier le système dans le Main Menu.xml' de adddestination s'il n'existe pas"
::
@echo off 
rem set mainsrc="%~2\Databases\Main Menu\Main Menu.xml"
set maindest="%~3\Databases\Main Menu\Main Menu.xml"
::recherche du system dans le xml de maindestination
for /f "delims=" %%i in ('type %maindest% ^|findstr /n /c:"%addsystem%"') do (
echo.Remarque : le systeme %addsystem% est deja dans le fichier de destination 'Main Menu.xml'
exit /b
) 
::ajout du systeme a la fin du xml destination
copy /Y nul temp.xml
for /f "delims=" %%a in ('type %maindest%') do (
echo "%%a" | findstr /n /c:"</menu>"
if errorlevel 1 (
    echo %%a >> temp.xml
) else (
    echo.  ^<game name="%addsystem%"/^> >> temp.xml
    echo.^</menu^> >> temp.xml
  )
)
move /y "temp.xml" %maindest%
Créez votre fichier, copiez le code, et sauvegardez-le.

Le second fichier hfsaddsystems.bat. Il permet de définir les emplacements de vos dossier hfsbox et les fichiers à copier.Le voici :

Code : Tout sélectionner

::ajouter un ou des systèmes à l'hfsbox
::@echo off 
set src="D:\HFSBoxOld"
set dest="D:\HFSBox"

::sauvegarde du Main Menu.xml du répertoire de destination ... au cas où...
copy /Y "%dest%\Databases\Main Menu\Main Menu.xml" "%dest%\Databases\Main Menu\Main Menu.xml.bak" 

::addsystem "move" %src% %dest% system emulator

call addsystem "copy" %src% %dest% "OpenBOR" "OpenBOR"
call addsystem "copy" %src% %dest% "Sony PlayStation" "ePSXe"
call addsystem "copy" %src% %dest% "Future Pinball" "Future Pinball"
call addsystem "copy" %src% %dest% "ScummVM" "ScummVM"
call addsystem "copy" %src% %dest% "Sega Dreamcast" "Sega Dreamcast"
call addsystem "copy" %src% %dest% "MAME" "MAME"
call addsystem "copy" %src% %dest% "Sega Naomi" "Sega Naomi"
call addsystem "copy" %src% %dest% "Sega Naomi" "NullDC Naomi"
call addsystem "copy" %src% %dest% "Sony PSP" "Sony PSP"
call addsystem "copy" %src% %dest% "Taito Type X2" "Taito Type X2"
call addsystem "copy" %src% %dest% "UltraStar Deluxe" "UltraStar Deluxe"
call addsystem "copy" %src% %dest% "Zinc" "Zinc"
::etc., etc.
Créer votre fichier, copier le code.
IL faut modifier les deux lignes suivantes :
set src="D:\HFSBoxOld"
set dest="D:\HFSBox"

Mettez dans la première ligne l’arborescence permettant d'accéder à votre ancien dossier hyperspin/hfsbox
Mettez dans la seconde ligne l’arborescence permettant d'accéder à votre nouveau dossier hyperspin/hfsbox
Ensuite mettez les systèmes que vous voulez copier ou déplacer :
call addsystem "copy" %src% %dest% "Sony PlayStation" "ePSXe"
...

Voici les arguments pour chaque ligne :
call addsystem "copy" %src% %dest% "System" "Emulator"

"copy" : permet de copier du premier dossier vers le second. On peut aussi mettre "move" mais je déconseille complètement.
"System" est le système que vous voulez copier
"Emulator" est l'émulateur associé au systèem et que vous voulez copier.

Mettez autant de ligne que vous avez de système à copier. C'est tout.
Sauvegardez-le.

Dans votre explorateur, cliquez sur le fichier hfsaddsystems.bat.
Si vous voulez savoir ce qui a été fait, ouvrez une invite de commande, allez dans votre dossier et lancez le fichier hfsaddsystems.bat. Il est aussi possible de créer un fichier log en lançant la commande hfsaddsystems.bat>hfsaddsystems.log
Mais c'est à tester, je ne suis pas sûr que tout soit OK !


Il ne reste plus qu'à réordonner vos systèmes dans le fichier HFSBox\Databases\Main Menu\Main Menu.xml
de votre nouvelle HFSBox.
En effet, les fichiers bat sont limiter en commande et il est difficile de faire des commandes complexes.
Le fichier bat teste juste si le système existe dans le fichier "Main Menu.xml" de la nouvelle box. S'il n'existe pas, le système est rajouté à la fin du fichier et c'est pour cela qu'il faudra réorganiser la liste des systèmes.

Au fait, pourquoi un batch ? parce que même si c'est obsolète, c'est utilisable sur tous les windows, sans installer un langage spécifique, sans exécutable à créer, sans compilation et facilement modifiable !

Avatar de l’utilisateur
faeze
Mentor
Mentor
Messages : 2089
Inscription : 16 mai 2013 - 01:00
Localisation : Henin Beaumont
A remercié : 198 fois
A été remercié : 118 fois

Re: [SCRIPT]Ajouter ou sauvegarder votre système à la HFSBox

Message par faeze » 18 nov. 2017 - 18:22

C'est genial! C'est pas du code en 2 lignes, c'est pas codé avec le cul. Merci min tiot pour cesavoir scripts et tuto qui déglinguent

Ça serais bien que les utilisateurs fassent des retours sur le scripts.

Avatar de l’utilisateur
tutor59
Virtuose
Virtuose
Messages : 1270
Inscription : 08 oct. 2014 - 01:00
A remercié : 119 fois
A été remercié : 176 fois

Re: [SCRIPT]Ajouter ou sauvegarder votre système à la HFSBox

Message par tutor59 » 18 nov. 2017 - 18:40

Merci min tchiot poulet,

tu regardes tous mes posts où quoi ? :lol: :lol: :lol: ;)

Avatar de l’utilisateur
faeze
Mentor
Mentor
Messages : 2089
Inscription : 16 mai 2013 - 01:00
Localisation : Henin Beaumont
A remercié : 198 fois
A été remercié : 118 fois

Re: [SCRIPT]Ajouter ou sauvegarder votre système à la HFSBox

Message par faeze » 18 nov. 2017 - 19:19

Tous les posts qui m'intéressent. Je vais mater les wip bientôt mais la je sais que je vais y passer un temps de dingue ;)

Avatar de l’utilisateur
tutor59
Virtuose
Virtuose
Messages : 1270
Inscription : 08 oct. 2014 - 01:00
A remercié : 119 fois
A été remercié : 176 fois

Re: [SCRIPT]Ajouter ou sauvegarder votre système à la HFSBox

Message par tutor59 » 18 nov. 2017 - 19:25

C'est ça de faire un pause :D

Répondre

Revenir à « Développements et logiciels maison »