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 14455 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.

A voir également:

4 réponses

barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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
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
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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
WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   > barnabe0057 Messages postés 14455 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
WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, je vais essayer :)
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > 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
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
WtfOrange Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
UP
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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
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
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > 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
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
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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