Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
[R] Adaptabilité fenêtre console
Auteur Message
Répondre en citant
Message [R] Adaptabilité fenêtre console 
Coucou les amis Mr. Green
Je bloque sur un petit bout de code. J'aimerai pouvoir adapter la taille de la console en fonction de l'entrée utilisateur:
Code:
@echo off

setlocal enabledelayedexpansion
set "nb=1"

:ask
set /p "input=>"
if "%input%"=="" goto end
if "%input%"=="done" goto list
if "%input%"=="export" goto export
set "task%nb%=%input%"
set /a nb+=1
goto ask

:list
set /a nb-=1

for /l %%A in (1,1,%nb%) do (
call :length
mode con cols=%length% lines=15
pause
cls
echo.
echo   Tache %%A:
echo   !task%%T!
pause>nul
)

:length
for /f "tokens=1* delims=[]" %%v in ('
  "%comspec% /u /c echo:!task%nb%!|more|find /n /v """
 ') do set /a "length=%%v"
goto:eof

:end
exit


A chaque fois il me retourne un length vide.
Quelqu'un peut m'aider ?

Des bisous



Dernière édition par Raiseit le Mar 9 Mai 2017 - 21:18; édité 2 fois

______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R] Adaptabilité fenêtre console 
salut,

ton "task%nb% n'est pas defini dans length.

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [R] Adaptabilité fenêtre console 
c'est à dire ?




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Adaptabilité fenêtre console 
C'est à dire qu'à mon avis, quand l'utilisateur entre "done", ton programme va à :list avant d'avoir exécuté set "task%nb%=%input%" donc quand ton programme (dans :list) va faire le call de :length, la variable ne sera pas définie. Je pense que ton goto arrive trop tôt et que tu devrais mettre tes set avant les if :
Code:
:ask
set /p "input=>"
set "task%nb%=%input%"
set /a nb+=1
if "%input%"=="" goto end
if "%input%"=="done" goto list
if "%input%"=="export" goto export
goto ask

ça marche comme ça? :X




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Adaptabilité fenêtre console 
Ca ne change rien.
J'ai revu mon code parce que j'ai vu des erreurs, mais je ne comprend toujours pas pourquoi ça ne marche pas:
Code:
@echo off

setlocal enabledelayedexpansion

if not exist DailyTasks (
md DailyTasks
attrib +h DailyTasks
echo "%cd%\ToDoList.bat">"%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Startup.bat"
)

:menu
mode con cols=80 lines=20
title ToDoList

cls
echo ToDoList.bat
echo (c)2017 Romain Dieu--Guillot
echo For more information, please go to raiseit.shost.ca
echo --------------------------------------------------------------------------------
echo What do you want to do today ^?
echo write done when finished or leave blank to leave

set "nb=0"

:ask
set "input="
set /p "input=>"
set /a nb+=1
set "task%nb%=%input%"
if "%input%"=="" goto end
if "%input%"=="done" goto list
if "%input%"=="export" goto export
goto ask

:list
set /a nb-=1

for /l %%A in (1,1,%nb%) do (
call :length  "!task%%A!"
mode con cols=%length% lines=15
cls
echo.
echo   Tache %%A: %length%
echo   !task%%A!
pause>nul
)

cls
echo Congratulation
echo You completed all today's task.
pause>nul
goto menu

:export
set /a nb-=1
for /l %%A in (1,1,%nb%) do (
(echo Tache %%A:
echo !task%%A!
echo.)>>ToDoList.txt
)

cls
echo Task list exported
pause>nul
goto menu

:length
for /f "tokens=1* delims=[]" %%l in ('
  "%comspec% /u /c echo:%~1|more|find /n /v """
 ') do set /a "length=%%l"
goto eof

:end
exit




Dernière édition par Raiseit le Lun 27 Fév 2017 - 10:07; édité 1 fois

______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Adaptabilité fenêtre console 
UP UP




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Adaptabilité fenêtre console 
Je suppose que personne ne trouve de solution ?




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Adaptabilité fenêtre console 
Raiseit a écrit:
Je suppose que personne ne trouve de solution ?

si tu tapes "done" ton programme crashe à la boucle for pcq %nb% est égal à 0
aussi je sais pas pourquoi tu as mit "set /a" pour définir length dans ta boucle for




______________________________________________________

Programme
Skype
Répondre en citant
Message [R] Adaptabilité fenêtre console 
En fait j'ai pas du tout compris à quoi servait ton code.
Je réussis à faire fonctionner correctement for (au lieu d'un call, j'ai directement mis le for contenu dans ta fonction :length dans le for principal car ça sert à rien de call pour un truc aussi petit) et la variable %length% est correctement définie.
Le problème c'est qu'elle est égale à 8 quand on tape "done", et ça me sort Impossible de configurer l’écran au nombre de lignes et de colonnes spécifié. car le nombre minimal de colonnes est de 15.




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Adaptabilité fenêtre console 
J'ai pas tout compris.

Enfin, je crois que j'ai compris un truc mais je suis pas sûr.
Tu veux faire un système de tâche quotidienne, c'est sa ?



Sinon j'ai pas bien compris le délire avec le redimensionnement de la fenêtre ?
C'est pour le fun ? xD



Voilà ce que j'aurai fait (d'après ce que j'ai compris) :



Code:
@echo off
setlocal enabledelayedexpansion
cls


::############################# - INISIALIZATION
if not "%start%"=="true" set start=false
set LANGAGE=true
set TASK="HELP"^
 "CREER"^
 "SUPPRIMER"^
 "VOIR"^
 "CREER_COMMANDE"
set /a nb=0
set /a error_level=2
set TaskListFile=taskList.ini
set ExecuteTaskListFile=taskList.bat
set FunctionLangage=FunctionLangage.txt

if not exist DailyTasks (
  md DailyTasks
  attrib +h DailyTasks
)
set "cdtemp=%cd%"
set "cdtemp=!cdtemp:~0,2!"
(
  echo;set start=true
  echo;!cdtemp!
  echo;cd "%cd%\"
  echo;call %~nx0
)> "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Startup.bat"
if exist %TaskListFile% (
  for /f "tokens=*" %%a in ('type %TaskListFile%') do if not "%%a"=="" set COMMAND_!nb!=%%a&set /a nb+=1
  if !nb! GTR 0 set /a nb-=1
)
rem TEMPLATE FUNCTION
if not exist %FunctionLangage% (
  (
    echo;:CREER
    echo;echo;Command CREER was execute
    echo;goto :eof
    echo;
    echo;:HELP
    echo;echo;Command HELP was execute
    echo;goto :eof
    echo;
    echo;:SUPPRIMER
    echo;echo;Command SUPPRIMER was execute
    echo;goto :eof
    echo;
    echo;:VOIR
    echo;echo;Command VOIR was execute
    echo;goto :eof
    echo;
    echo;:CREER_COMMANDE
    echo;echo;Command CREER_COMMANDE was execute
    echo;goto :eof
  )> %FunctionLangage%
)
rem END TEMPLATE FUNCTION
if "%start%"=="true" call :ExecuteTaskList "true"
::############################# - END_INISIALIZATION
 
 
 
 
::############################# - MENU
:MENU
set /a error_level=2
mode con cols=80 lines=20
title ToDoList
 
cls
echo ToDoList.bat
echo (c)2017 Romain Dieu--Guillot ^& Flammrock
echo For more information, please go to raiseit.shost.ca or raiseit.flammrock.ga
echo --------------------------------------------------------------------------------
echo What do you want to do today ^?
echo write done when finished or leave blank to leave
::############################# - END_MENU



::############################# - TERMINAL
:TERMINAL
set /p "input=>"
if "%input%"=="" goto :end
if "%input%"=="/done" goto :SEEtask "false"
if "%input%"=="/export" goto :EXPORT_tasks "true"
if "%input%"=="/delete" goto :REMOVEtask
if "%input%"=="/see" goto :SEEtask "true"


call :ADDtoLIST "%input%" "%LANGAGE%"


goto :TERMINAL
exit
::############################# - END_TERMINAL
 
 
 
 
::############################# - ADDtoLIST
:ADDtoLIST <PARA_1> <PARA_2>
call :TASKcheck "%~1" "%~2"
if not "%error_level%"=="2" (
  if exist %TaskListFile% set /a nb+=1
  set COMMAND_!nb!=%~1
  (
    echo;%~1
  )>> %TaskListFile%
  echo;The command has been added successfully!
  set /p ".=Appuyez sur une touche pour revenir au menu... " <nul
  pause>nul
) else (
  ::SYSTEM FAILED, RETURN TO MENU
  echo;ERROR 15 : Unknown Command
  set /p ".=Appuyez sur une touche pour revenir au menu... " <nul
  pause>nul
)
goto :MENU
exit
::############################# - END_ADDtoLIST




::############################# - TASKcheck
:TASKcheck <PARA_1> <PARA_2>
set /a error_level=2
if "%~2"=="true" (
  for %%a in (%TASK%) do (
   if "%~1"=="%%~a" (
     set /a error_level=0
   )
  )
) else (
  set /a error_level=0
)
goto :eof
exit
::############################# - END_TASKcheck





::############################# - REMOVEtask
:REMOVEtask
call :SEEtask "true"
echo;Type '/back' to return to menu
set /p "nbRemovetask=> Number of task to remove :"
if /i "%nbRemovetask%"=="/back" goto :MENU
echo;%nbRemovetask%|findstr /r "[^0-9]" >nul
if "%errorlevel%"=="1" (
  rem REWRITE :
  if exist %TaskListFile% del /q %TaskListFile%
  set /a nbtemp=0
  for /l %%a in (0,1,!nb!) do (
    if not "%%~a"=="%nbRemovetask%" (
     set COMMAND_!nbtemp!=!COMMAND_%%a!
     (
       echo;!COMMAND_%%a!
     )>> %TaskListFile%
     set /a nbtemp+=1
   ) else (
     set /a nb-=1
   )
  )
  call :SEEtask "true"
  set /p ".=Appuyez sur une touche pour revenir au menu... " <nul
  pause>nul
) else (
  echo;ERROR 12 : It's not a number..
  set /p ".=Appuyez sur une touche pour revenir au menu... " <nul
  pause>nul
)
goto :MENU
exit
::############################# - END_REMOVEtask





::############################# - SEEtask
:SEEtask <PARA_1>
echo;
echo;----------------------------------- View All Tasks
for /l %%a in (0,1,!nb!) do (
  echo;%%a : !COMMAND_%%a!
)
echo;----------------------------------- End View All Tasks
echo;
if "%~1"=="true" (
  goto :eof
) else (
  set /p ".=Appuyez sur une touche pour revenir au menu... " <nul
  pause>nul
  goto :MENU
)
exit
::############################# - END_SEEtask





::############################# - EXPORT_tasks
:EXPORT_tasks <PARA_1>
rem A AMELIORER
if exist %ExecuteTaskListFile% del /q %ExecuteTaskListFile%
if "!nb!"=="0" echo;ERROR 7 : No Command to export..&set /p ".=Appuyez sur une touche pour revenir au menu... " <nul&pause>nul&goto :MENU
echo;cls> %ExecuteTaskListFile%
for /l %%a in (0,1,!nb!) do (
  if "%LANGAGE%"=="true" (
    (
     echo;call :!COMMAND_%%a!
   )>> %ExecuteTaskListFile%
  ) else (
    (
     echo;!COMMAND_%%a!
   )>> %ExecuteTaskListFile%
  )
)
(
  echo;echo;
  echo;goto :ExecuteEnd
)>> %ExecuteTaskListFile%

if "%LANGAGE%"=="true" (
  if exist %FunctionLangage% (
    type %FunctionLangage% >> %ExecuteTaskListFile%
  ) else (
    if "!nb!"=="0" echo;ERROR 4 : No Function to export..&set /p ".=Appuyez sur une touche pour revenir au menu... " <nul&pause>nul&goto :MENU
  )
)
if "%~1"=="true" (
  set /p ".=Appuyez sur une touche pour revenir au menu... " <nul
  pause>nul
  goto :MENU
) else (
  goto :eof
)
exit
::############################# - END_EXPORT_tasks




::############################# - ExecuteTaskList
:ExecuteTaskList <PARA_1>
call :EXPORT_tasks "false"
call %ExecuteTaskListFile%
echo;
:ExecuteEnd
echo;The tasks were carried out successfully
if "%~1"=="true" (
  set /p ".=Appuyez sur une touche pour revenir au menu... " <nul
  pause>nul
  goto :MENU
) else (
  goto :eof
)
::############################# - END_ExecuteTaskList



:end
exit




_______________________________
EDIT :


Il faudrait peut-être que j'explique un peu le fonctionnement du code xDDD
Alors commençons par le commencement du début de la première ligne......xDDD

Bon je vais expliquer rapidement :


- Le programme possède une variable : LANGAGE
(p.s: cette variable peut prendre 2 valeurs : true ou false)
Celle-ci permet en outre de définir des commandes personnalisés, afin de bien s'en servir, il faut savoir que celle-ci est directement lié aux variables FunctionLangage et TASK
qui répertorie toutes les fonctions, donc si vous souhaitez rajouter une fonction : voici un exemple



Imaginons que je veuille rajouter la fonction : SALUT_JE_SUIS_TON_PERE
Il faut que j'ouvre le fichier FunctionLangage et que j'insère ceci en fin de fichier :

Citation:
:SALUT_JE_SUIS_TON_PERE
echo;Command SALUT_JE_SUIS_TON_PERE was execute
rem Et la tu décide ici ce que doit faire la fonction
goto :eof


Ensuite, il faut (en début de script) que la variable TASK ce voit rajouter cette fonction, donc on applique cela comme ceci :

Citation:
set TASK="HELP"^
"CREER"^
"SUPPRIMER"^
"VOIR"^
"CREER_COMMANDE"^
"SALUT_JE_SUIS_TON_PERE"




YEAH !! Vous savez à présent comment rajouter une tâche !
Sachez que si la variable LANGAGE est égal à false : ce sera tu vrai batch à la place





Donc maintenant, que doit-on faire pour qu'au démarrage, il exécute les tâches que l'on a définit.....et ba RIEN, TOUT est AUTOMATIQUE xDD
Vous rajoutez les tâches à la suite et c'est bon Okay


Pour ceux qui n'ont pas bien regarder le code source voici la liste des commandes :

Citation:
if "%input%"=="/done" goto :SEEtask "true"
if "%input%"=="/export" goto :EXPORT_tasks "true"
if "%input%"=="/delete" goto :REMOVEtask
if "%input%"=="/see" goto :SEEtask "true"


Si je veux rajouter une tâche, je marque par exmple : CREER (c'est une tâche de base)
Si je veux voir où j'en suis dans mon bordel, je marque /see
Si j'ai fait une connerie, je peux supprimer la tâche en faisant : /delete


Si vous avez des questions, n'hésitez pas Mr. Green



Petite démonstration :






p.s : avec moi c'est toujours du sûr mesure xDD




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] Adaptabilité fenêtre console 
Je viens de remarquer que je n'ai pas répondu à la question de départ xDDD
Utilise cette petite fonction pour redimensionner correctement la console :

Code:
@echo off
setlocal enabledelayedexpansion
title OK


:main
set /p "cols=>"
call :SizeCmdWindow "%cols%" "20" 1
goto :main




:SizeCmdWindow <cols> <lines> <MODE>
set "$cols=%~1"
set "$lines=%~2"
if "%~3"=="" echo;MODE is undefined&pause&goto :eof
if "%~3"=="0" (
  for /f "delims=" %%a in ('powershell.exe -noprofile -command $host.ui.rawui.WindowSize.Height') do set $Dlines=%%a
  for /f "delims=" %%a in ('powershell.exe -noprofile -command $host.ui.rawui.WindowSize.Width') do set $Dcols=%%a
  set $cols=%$cols:"=%
  set $lines=%$lines:"=%
  set $cols=%$cols:'=%
  set $lines=%$lines:'=%
  echo;!$cols!|findstr /r "[^0-9]" >nul
  if "!errorlevel!"=="1" (
    echo;!$lines!|findstr /r "[^0-9]" >nul
    if "!errorlevel!"=="1" (
      if !$cols! LSS 15 set /a $cols=15
     if !$lines! LSS 1 set /a $lines=1
      mode con cols=!$cols! lines=!$lines!
    ) else (
      if !$cols! LSS 15 set /a $cols=15
      mode con cols=!$cols! lines=!$Dlines!
    )
  ) else (
    echo;!$lines!|findstr /r "[^0-9]" >nul
    if "!errorlevel!"=="1" (
      if !$lines! LSS 1 set /a $lines=1
      mode con cols=!$Dcols! lines=!$lines!
    ) else (
      mode con cols=!$Dcols! lines=!$Dlines!
    )
  )
) else (
  set "$cols=%~1"
  set "$lines=%~2"
  if !$cols! LSS 15 set /a $cols=15
  if !$lines! LSS 1 set /a $lines=1
  mode con cols=!$cols! lines=!$lines!
)
goto :eof



pause>nul



Comme tu peux le voir, il y a 2 modes.
Le mode 0 correspond au mode de sécurité, il est un peu plus long mais permet de détecter si les arguments sont bien des nombres et s'ils sont supérieurs à leur minimum respectif (p.s : je n'ai pas fait le maximum)
Le mode 1 est en quelque sorte le mode de confiance, il te fais confiance sur les arguments et ne les vérifie pas.

Après à toi de rajouter tes modes perso Mr. Green
Libre à toi de modifier ce script comme il te convient Okay
Il n'est pas très optimisé mais ça va je pense Laughing




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] Adaptabilité fenêtre console 
Salut, déso pour les messages à la suite xD


Je remet juste à disposition la correction que j'avais mis dans le tchat Okay



Voilà : http://pastebin.com/naBjC5qL




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] Adaptabilité fenêtre console 
ça part beaucoup trop loin cette histoire Very Happy
Au départ c'était juste un petit code ou tu peut écrire ce que tu veux et après tu peut voir ce que t'as noté ligne par ligne. Je voulais juste une fenêtre de console qui s'adapte a ce qui est écrit parce que je trouvais ça cool XD En tout cas merci d'avoir cherché une solution.
Finalement, je n’implémenterais pas cette fonctionnalité (c'est bon, arrêtez de m'insulter, je sais, vous vous êtes fait chier pour rien ^_^) vu que c'était censé être un programme simple.

Merci beaucoup




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Adaptabilité fenêtre console 
Raiseit a écrit:
ça part beaucoup trop loin cette histoire Very Happy
Au départ c'était juste un petit code ou tu peut écrire ce que tu veux et après tu peut voir ce que t'as noté ligne par ligne. Je voulais juste une fenêtre de console qui s'adapte a ce qui est écrit parce que je trouvais ça cool XD En tout cas merci d'avoir cherché une solution.
Finalement, je n’implémenterais pas cette fonctionnalité (c'est bon, arrêtez de m'insulter, je sais, vous vous êtes fait chier pour rien ^_^) vu que c'était censé être un programme simple.

Merci beaucoup

Ducoup,sujet résolu ?




______________________________________________________


cliquer sur un des liens n'est pas dangereux
Ancien site,Nouveau site
Mon site de scan
Vous êtes le
visiteur
Chaine Youtube:
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Adaptabilité fenêtre console 
Raiseit a écrit:
ça part beaucoup trop loin cette histoire Very Happy
Au départ c'était juste un petit code ou tu peut écrire ce que tu veux et après tu peut voir ce que t'as noté ligne par ligne. Je voulais juste une fenêtre de console qui s'adapte a ce qui est écrit parce que je trouvais ça cool XD En tout cas merci d'avoir cherché une solution.
Finalement, je n’implémenterais pas cette fonctionnalité (c'est bon, arrêtez de m'insulter, je sais, vous vous êtes fait chier pour rien ^_^) vu que c'était censé être un programme simple.

Merci beaucoup


Quand j'aide quelqu'un, je suis à 1000% ou ?% un peu de la même manière que mob dans mob100
Seul ceux qui connaissent sauront de quoi je parle xD

Et en quoi ça part beaucoup trop loin, on vient juste de commencer xDD




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Message [R] Adaptabilité fenêtre console 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch