Page 1 sur 1

Script DCS profile swap

Publié : lun. juin 08, 2020 5:17 am
par DocRV
Salut les z'amis,

Je me suis fait un script qui permet de changer le profil DCS actif entre une version 2.5.5 et 2.5.6. C'est du bon vieux DOS shell, donc modifiable facilement au gré de vos versions respectives.
Je ne sais pas si un outil existe et je ne sais pas si ça intéresse quelqu'un. Je partage 'au cas où'. Les commentaires sont bienvenus :-)

Prérequis initial :
dans C:\Utilisateurs\(votre profil)\Parties Enregistrées\
avoir un dossier 'DCS.Regular' dans lequel vous copiez le profil normal DCS
avoir un dossier 'DCS.Alternative' dans lequel vous copiez le profil alternatif DCS
...et un dossier 'DCS', quelle que soit la version

Créez in fichier texte, renommez-le en 'ProfileSwap.cmd' et copiez dedans le code ci-dessous.

@echo off
setlocal enableextensions EnableDelayedExpansion
C:
set SavedGamesPath="%USERPROFILE%\Saved Games"

if not exist "%USERPROFILE%\Saved Games\DCS" echo DCS userprofile folder not found ! && pause && exit
echo.
echo.
echo DocRV DCS PROFILE SWAP
echo.
echo Permet l'echange de profils entre DCS Regular (2.5.6) et DCS version Alternative (2.5.5) ;-)
echo.
echo Le profil DCS actif se trouve dans C:\Utilisateurs\(votre profil)\Parties Enregistrees\
echo.
echo Prerequis : avoir un dossier 'DCS.Regular' avec le profil normal DCS
echo avoir un dossier 'DCS.Alternative' avec le profil alternatif DCS
echo ...et un dossier 'DCS', quelle que soit la version
echo.
echo Choix du profil a activer
echo.
echo 1. Regular DCS 2. Alternative DCS
echo.
echo (tapez 1 ou 2)
echo.
echo.
set /p DCSChoice=

REM Indiquez les versions a chercher.
if %DCSChoice%== 1 set DCSChoice=2.5.6
if %DCSChoice%== 2 set DCSChoice=2.5.5

REM On nettoie un peu les fichiers inutiles et qui peuvent poser probleme suite a une des MaJ
del /Q /S /F "%USERPROFILE%\Saved Games\DCS\fxo\*.*"
del /Q /S /F "%USERPROFILE%\Saved Games\DCS\metashaders2\*.*"

cd "%USERPROFILE%\Saved Games\DCS\logs"

REM On cherche la chaine de caractere "DCS/2.5." qui precede la version de DCS dans le fichier dcs.log
for /F "tokens=5 delims= " %%a in ('findstr /I "DCS/2.5." dcs.log') do set "DCSversion=%%a"

REM On enleve quelques caracteres avant et apres pour garder un numero de version sous la forme 2.5.x
REM Si vous devez definir la version plus finement (avec plus de digits), modifier la valeur ,5% qui supprime les 5 derniers caracteres de la chaine
set DCSversion=%DCSversion:~4,5%

REM En fonction de la version detectee du profil actif, on copie dans le dossier correspondant
if %DCSversion% == 2.5.5 (robocopy %SavedGamesPath%\DCS %SavedGamesPath%\DCS.Alternative /MIR /FFT /Z /xf /xf *.fxo)
if %DCSversion% == 2.5.6 (robocopy %SavedGamesPath%\DCS %SavedGamesPath%\DCS.Regular /MIR /FFT /Z /xf /xf *.fxo)

Rem Gestion d'erreur dossier non trouve
if not exist %SavedGamesPath%\DCS.Alternative (
echo .
echo Pour fonctionner vous devez avoir un dossier DCS.Alternative
echo Lancez la version Firgirl et renommez le profil DCS en DCS.Alternative
echo.
echo.
pause
exit
)

Rem Gestion d'erreur dossier non trouve
if not exist %SavedGamesPath%\DCS.Regular (
echo .
echo Pour fonctionner vous devez avoir un dossier DCS.Regular
echo Lancez la version Regulare de DCS et renommez le profil DCS en DCS.Regular
echo.
echo.
pause
exit
)
cls
echo.
echo profile version detected : %DCSversion%
echo profile version requested : %DCSChoice%

echo.
if %DCSversion% == %DCSChoice% (
echo Profile is already good. Nothing to do.
goto bye
)

cd "%USERPROFILE%\Saved Games"
If %DCSChoice% == 2.5.5 goto Alternative
If %DCSChoice% == 2.5.6 goto Regular

:Alternative
If %DCSversion% == 2.5.6 (

@robocopy DCS DCS.Regular /MIR /FFT /Z /xf /xf *.fxo
@robocopy DCS.Alternative DCS /MIR /FFT /Z /xf /xf *.fxo
cls
echo.
echo.
echo --- Alternative profile ready!
goto bye
)

:Regular
If %DCSversion% == 2.5.5 (
@robocopy DCS DCS.Alternative /MIR /FFT /Z /xf /xf *.fxo
@robocopy DCS.Regular "DCS" /MIR /FFT /Z /xf /xf *.fxo
cls
echo.
echo.
echo --- Regular profile ready!
goto bye
)

:Bye
echo.
echo.
echo All done !!!
echo.
echo.
pause