Annonce

Réduire
Aucune annonce.

Script Batch Editeur Afficheur de registre Windows

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Script Batch Editeur Afficheur de registre Windows

    Bonjour à tous.
    A la demande d'un administrateur, je vais vous présenter un petit script maison.
    L'idée à germé quand je me suis rendu compte que l'affichage du registre de windows était plutôt chiant à utiliser.
    J'ai donc imaginé le registre comme une arborescence. C:\ fut remplacé par Reg:\ pour donner plus crédibilité .
    Puis l'utilisation du "cd" pour naviguer, afin de garder la logique du shell.
    Le code n'est pas forcément le plus optimisé; c'était plus une nécessité qu'un simple projet.
    A vous de voir. L'avantage c'est qu'il est entièrement customisable pour créer ses propres chemins d'accès (avec un minimum de connaissance).

    Registre.jpg

    Code:
    @echo off
    title Regedit
    if exist reg.txt del reg.txt
    if exist temp.txt del temp.txt
    if exist temp.bat del temp.bat
    set acd=%cd%
    set bcd=%cd%
    set path1=reg:
    set cde=reg:
    set vide=                                     `
    set /a dos=1
    color 0E
    cls
    :view
    del reg.txt
    set cda=%cde:reg:\=%
    if "%cde%"=="%path1%" echo Dossier Reg:\>> reg.txt
    if not "%cde%"=="%path1%" echo Dossier Reg:\%cda%>> reg.txt
    set cda="%cda%"
    @echo %vide%>> reg.txt
    @echo ..>> reg.txt
    if not "%cde%"=="%path1%" reg query %cda%>> reg.txt
    if "%cde%"=="%path1%" echo HKEY_CLASSES_ROOT/>> reg.txt
    if "%cde%"=="%path1%" echo HKEY_CURRENT_USER/>> reg.txt
    if "%cde%"=="%path1%" echo HKEY_LOCAL_MACHINE/>> reg.txt
    if "%cde%"=="%path1%" echo HKEY_USERS/>> reg.txt
    if "%cde%"=="%path1%" echo HKEY_CURRENT_CONFIG/>> reg.txt
    :menu
    cls
    type reg.txt
    @echo %vide%
    set /p menu=$ 
    :command
    REM =============================================================
    REM Vous pouvez créer ici vos propres appels - if "%menu%"=="code" goto fonction
    REM =============================================================
    if "%menu%"=="add" goto adding
    if "%menu%"=="defaut" goto dfl
    if "%menu%"=="dossier" goto deletmd
    if "%menu%"=="delete" goto deleting
    if "%menu%"=="eraze" goto erazing
    if "%menu%"=="help" goto help
    if "%menu%"=="ins" goto inst
    if "%menu%"=="exit" del reg.txt&exit
    if "%menu%"=="run" goto runaway
    if "%menu%"=="base" goto base
    if "%menu%"=="copy" goto cop
    cls
    if "%menu%"=="cmd" echo ^>%bcd%&cd "%bcd%"&goto cmd
    echo %menu%> anal.txt
    for /f "tokens=1,*" %%G IN (anal.txt) DO (
    if "%%G"=="cd" if not "%%H"==".." set cde=%cde%\%%H&set /a dos=dos+1
    if "%%G"=="cd" if "%%H"==".." if not %dos%==1 echo for /f "tokens=%dos% delims=\" %%%%I IN ^("%cde%"^) DO echo set cde=%%%%cde:
     
    \%%%%I=%%%%^> tools2.bat> tools.bat&call tools.bat&set /a dos=dos-1&del tools.bat&call tools2.bat&del tools2.bat
    if "%%G"=="cd" if "%%H"==".." if %dos%==1 echo Commande indisponible !&pause>nul
    )
    del anal.txt
    goto view
     
    :runaway
    set cde=reg:\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    set /a dos=7
    goto view
     
    :base
    set cde=reg:
    set /a dos=1
    goto view
     
    :erazing
    cls
    set /p cx=Tout supprimer (o/n) ? 
    if not "%cx%"=="o" echo Pas supprimer !&pause>nul&goto view
    set cda=%cde:reg:\=%
    reg delete %cda% /va /f
    echo Supprimer !
    pause>nul
    goto view
     
    :cop
    cls
    type reg.txt
    set /p nom=Nom de la clef finale (Complete) : 
    set cda=%cde:reg:\=%
    reg copy %cda% %nom% /s
    goto view
     
    :dfl
    cls
    type reg.txt
    @echo %vide%
    @echo REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD
    @echo REG_QWORD, REG_BINARY, REG_NONE
    set /p type=Type: 
    set /p info=Donnee (sans espace): 
    set cda=%cde:reg:\=%
    reg add %cda% /ve /t %type% /d %info%
    goto view
     
    :adding
    cls
    type reg.txt
    set /p nom=Nom : 
    @echo %vide%
    @echo REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD
    @echo REG_QWORD, REG_BINARY, REG_NONE
    set /p type=Type: 
    set /p info=Donnee (sans espace): 
    set cda=%cde:reg:\=%
    reg add %cda% /v %nom% /t %type% /d %info%
    goto view
     
    :deleting
    cls
    type reg.txt
    set /p nom=Nom de la valeur : 
    set cda=%cde:reg:\=%
    reg delete %cda% /v %nom% /f
    goto view
     
    :deletmd
    cls
    type reg.txt
    set /p nom=Nom de la clef : 
    set cda=%cde:reg:\=%
    reg delete %cda%\%nom%
    goto view
     
    :inst
    cls
    @echo 0 > temp.txt
    @echo for /f "tokens=1" %%%%G IN (temp.txt) DO set /a a1=%%%%G > temp.bat
    @echo set /a a1=a1+1 >> temp.bat
    @echo echo %%a1%% ^> temp.txt >> temp.bat
     
    for /f "tokens=*" %%G IN (reg.txt) DO (
    echo %%G
    call temp.bat
    for /f "tokens=1" %%H IN (temp.txt) DO (
    if %%H==10 pause>nul&echo 0 > temp.txt
    ))
    del temp.txt
    del temp.bat
    @echo %vide%
    set /p menu=$ 
    goto command
     
    :help
    cls
    @echo cd : Change de dossier
    @echo add : Ajoute une valeur avec sa clef
    @echo defaut : Indique la valeur clef par defaut
    @echo erase : Supprime toute les valeurs de cette clef
    @echo dossier : Supprime la clef
    @echo delete : Supprime la valeur
    @echo copy : Copier une valeur
    @echo cmd : Lance une instance CMD
    @echo exit : Quitte la console
    @echo run : Affiche les lancements au demarrage
    @echo base : Retourne a la racine
    @echo ins : Stop l'affichage toutes les 10 racines
    pause>nul
    goto menu
     
    :cmd
    set /p cmd=$ 
    if "%cmd%"=="quit" set bcd=%cd%&cd "%acd%"&goto view
    if "%cmd%"=="cmd" goto cmd
    %cmd%
    goto cmd
     
    //
     
    Par Yarflam le 7 août 2011 - Registre éditor
     
    //
    Pour le customiser rien de plus simple :
    Code:
    :runaway
    set cde=reg:\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    set /a dos=7
    goto view
    La première ligne indique la création d'une fonction runaway (toujours précédé d'un deux point).
    La seconde sauvegarde le chemin d'accès que vous souhaitez créer.
    La troisième indique le nombre d'informations séparés par des slashs 1 reg:, 2 HKLM, 3 SOFTWARE, 4 Microsoft, 5 Windows, 6 CurrentVersion, 7 Run.
    Enfin on retourne à la fonction view pour afficher l'arborescence.

    Pour terminer vous devez appeler la fonction runaway dans la fonction command (if "%menu%"=="code" goto fonction) - je l'ai commenté dans le code source.
    La fonction d'appel sera par exemple if "%menu%"=="hackademics" goto runaway
    Donc quand on tapera dans le shell hackademics, on accèdera à la partie du registre dans lequel s'affiche les processus au démarrage

    Pour info : set crée une variable, goto un appel, if une condition.
    set /a i=0 est une variable numérique (donc avec incrémentation set /a i=i+1)
    set txt=abc est une variable texte ou booléen (true / false)
    set /p k=Nom : est une variable input, pour que l'utilisateur indique une chaîne ou un nombre

    Dernière chose, toutes les syntaxes sont accessibles en tapant "help".
    Je pense notamment à la commande "ins" qui est très pratique pour des longues listes (il affiche 10 lignes, stop, puis recommence jusqu'à la fin)

    Si vous avez des questions ...
    Je ferai un petit tutoriel MS-DOS quand j'aurai le temps.
    @++
    Dernière modification par Yarflam, 02 décembre 2012, 22h31.
    ~ Yarflam ~

    ❉ L'Univers se dirige vers son ultime perfection ❉
Chargement...
X