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
Pour le customiser rien de plus simple :
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.
@++
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 //
Code:
:runaway set cde=reg:\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run set /a dos=7 goto view
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.
@++