Changer des valeurs en fonctions des choix de l'utilisateur

WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaite savoir :

Comment changer des valeurs en fonctions des choix de l'utilisateur de mon .bat

En gros je veux faire un .bat que je convertirais en .exe plus tard

"Regedit Maker".

Ce logiciel va créer un .reg qui contiendras des valeurs pour le Tcpip dans le regedit

Et en fait je vais poser plusieurs questions :

echo Choice your MTU

Your MTU : exemple 1500

et bah j'aimerais que ça mette cette valeur dans le .reg et si ce n'est pas 1500 bah ça le change donc en gros ça mette le MTU de la personne genre si c'est 1492 bah ca mettras 1492 ou encore d'autres valeurs personnalisées par l'utilisateur

Donc en gros faire une valeur personnalisée en fonction de ce que l'utilisateur met et pas devoir faire une valeur fixe imposée par moi même.

Un énorme merci si vous pouvez m'aider !

Cordialement, Un mec perdu.

4 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
     
    Bonjour,

    Voilà un modèle :

    @echo off
    title Modification du MTU
    mode con: cols=65 lines=20
    Setlocal enableextensions enabledelayedexpansion
    color 0A & chcp 1252 > nul

    set key=HKLM\System\CurrentControlSet\Services\TcpIP\Parameters\Interfaces

    :saisie
    cls & echo. & set "mtu="
    set /p "mtu=### Entrez la valeur MTU souhaitée : "

    if defined mtu (Call:action mtu || goto :saisie) else (goto :saisie)

    endlocal

    echo. & echo ### La valeur a bien été modifiée !
    echo. & timeout /t 8

    exit /B

    :action
    for /f %%A in ('reg query %key%') do (>nul 2>&1 reg add %%A /v MTU /t REG_DWORD /d !%1! /f)
    goto :eof

    rem

    0
  2. WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
     
    Wow ! ça fait beaucoup ça ^^ Mais il n'y a pas plus simple ? Parce que je ne veut pas mettre que le MTU dans le programme genre pour mieux expliquer :

    L'utilisateur choisi :

    -MTU
    -Latency / Reach / Knockback .. et peut être d'autres choses plus tard..

    Les valeurs qui sont pour Latency / Reach / Knockback sont des valeurs TCPNoDelay et TcpAckFrequency qui seront misent en goto:latency .. etc ça je me charge j'ai compris comment faire, mais c'est pour le MTU que je bloque vu que c'est justement une valeurs propre à l'utilisateur donc je ne peux pas la choisir à sa place..

    Mais merci quand même pour m'avoir répondu !
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
       
      Voilà une version simplifiée :

      @echo off

      set key=HKLM\System\CurrentControlSet\Services\TcpIP\Parameters\Interfaces

      set "mtu="
      set /p "mtu=### Entrez la valeur MTU souhaitée : "

      for /f %%A in ('reg query %key%') do (reg add %%A /v MTU /t REG_DWORD /d %mtu% /f)

      pause

      exit
      0
      1. WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Il y a un problème, le scrip est bugué

        Et ça serait possible de le faire mais que ça ce mette dans un .reg et non que ca se mette déjà en bat ? ^^
        0
    2. WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci, je vais essayer :)
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929 > WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
         
        De quel bug s'agit-il ?

        Tu ne peux pas passer par un fichier .reg car le nom des interfaces réseaux est composé de caractères aléatoires.
        0
    3. WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
       
      Hmm d'accord mais attends je te passe un lien d'une vidéo Youtube, en gros je voudrais faire comme lui à peut prêt, mais moi le faire Gratuit car ce mec vend ça 15$ ^^

      https://www.youtube.com/watch?v=vbb-pf0nbk4
      0
  3. WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
     
    UP
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
       
      Pas besoin de te casser la tête, il y a un beau logiciel tout fait :
      https://www.youtube.com/watch?v=ngHKwrR-8fU
      0
    2. WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
       
      Je connais ce logiciel mais ce que je vais faire ne va pas être que pour moi, je vais partager ce que je vais faire et j'ai vraiment envie de le faire ^^
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929 > WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
         
        Pourquoi le mec dans ta vidéo demande le nombre de coeurs du processeur et le type de connexion ? Ca n'a aucun intérêt, tu confirmes ?
        0
    3. WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
       
      Ouai je sais pas du tout pourquoi c'est vraiment bizarre mdrr
      0
  4. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
     
    J'ai tout fait via un script, car un .reg ne serait pas compatible avec un autre pc :

    @echo off
    Setlocal enableextensions
    chcp 1252 > nul

    :: ----------------------------------
    :: on récupère l'adresse ip locale
    :: ----------------------------------

    for /F "tokens=16" %%i in ('ipconfig ^| findstr /C:"Adresse IPv4" ^| sort /R') do (set local_ip=%%i)

    :: ---------------------------
    :: on définit les variables
    :: ---------------------------

    set key1=HKLM\System\CurrentControlSet\Services\TcpIP\Parameters\Interfaces
    set key2=HKLM\SOFTWARE\Microsoft\MSMQ

    echo. & set "mtu="
    set /p "mtu=### Entrez la valeur souhaitée pour le MTU : "

    echo. & echo ### Tapez 1 pour le mode JEU
    echo. & echo ### Tapez 2 pour le mode NORMAL

    echo. & set "choix="
    set /p "choix=Votre choix : "

    :: ----------------------------------
    :: on lance la fonction paramétrée
    :: ----------------------------------

    if "%choix%"=="1" (call :tweak 1 1)
    if "%choix%"=="2" (call :tweak 2 0)

    :: -----------------------------
    :: fin du programme principal
    :: -----------------------------

    endlocal

    echo. & echo ### Les modifications ont été effectuées avec succès !!!
    echo. & pause

    exit /B

    :: -------------------------------------------------
    :: on modifie le registre à l'aide d'une fonction
    :: -------------------------------------------------

    :tweak

    echo.

    for /f %%A in ('reg query %key1%') do (

    for /f %%E in ('2^>nul reg query %%A /v "IPAddress" ^| findstr "%local_ip%"') do (

    reg add %%A /v MTU /t REG_DWORD /d %mtu% /f
    reg add %%A /v TcpAckFrequency /t REG_DWORD /d %1 /f

    )

    )

    reg add %key2%\Parameters /f
    reg add %key2%\Parameters /v TCPNoDelay /t REG_DWORD /d %2 /f

    goto :eof

    rem
    0