Interrogation du registre - Shell/Batch - Programmation
Marsh Posté le 16-06-2008 à 11:18:17
1)
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "M y Music" /t reg_sz /d "ce que tu veux" /f
2)
Pour sauter des lignes dans une chaine de caractère tu peux pas en batch. T'es obligé de diviser la variable en 2 et de faire 2 ECHO
Marsh Posté le 16-06-2008 à 16:19:30
Merci pour le 2, mais pour le 1, c'est pas ça.
avec reg add, tu ne fais qu'écrire la valeur dans le registre.
ce que je veux, moi, c'est STOCKER la donnée que tu as appelé "ce que tu veux" dans une variable.
Comment on fait ?
Marsh Posté le 16-06-2008 à 17:56:54
Ha ok j'avais mal compris.
Code :
|
Heu la tabulation passe mal, c'est donc une tabulation après "tokens=3 delims=
Marsh Posté le 16-06-2008 à 23:23:46
oulalala un truc si compliqué pour quelque chose de si basique ?
Marsh Posté le 17-06-2008 à 08:09:52
Vous n'avez pas un lien pour un bon tuto en batch svp ?
De préférence en français ?
Marsh Posté le 17-06-2008 à 16:03:20
Non des bons tutos sur le batch c'est rare, si tu veux apprendre tu me demandes
Marsh Posté le 18-06-2008 à 04:04:42
Je risque d'avoir énormément de questions... C'est ça l'ennui.
Pour l'instant, ma seule question est : Faut-il choisir le VBS ou le Batch ?
Je cherche à créer des scripts qui peuvent installer/désinstaller proprement mes programmes préinstallés, en copiant/supprimant des fichiers/dossiers/clés de registres, ce qui impose de pouvoir
- Détécter la présence de clés de registres
- Enumérer les valeurs d'une clé de registre
- Lire la donnée d'une valeur
Jusqu'ici je passais par WMI en VBS, mais il est formidablement lent, alors que Reg.exe est tellement plus rapide.
M'est donc venue l'idée du batch.
Mais le fait de ne pouvoir mettre de commentaires à côté des lignes me court déjà...
=> Questions :
1 - Qu'est-ce qui est le plus rapide ? VBS ou Batch ?
2 - Qu'est-ce qui évolue le mieux en terme d'améliorations (notamment pour les fonctions 64 bit) ?
3 - Qu-est ce qui est le moins compliqué ?
4 - Y a-t-il des aspects pratiques que j'ignore dans le batch à part la vitesse ?
Lequel me conseillez-vous entre VBS et batch ?
Marsh Posté le 18-06-2008 à 04:16:29
Sinon j'ai entendu parler de Powershell...
Niveau fonctionalités et rapidité, c'est mieux ou moins bien que VBS ou batch ?
Ca vaut le coup que je l'apprenne ?
Marsh Posté le 18-06-2008 à 20:11:21
J'ai toujours codé qu'en Batch, tout ce que j'ai voulu codé, je l'ai codé.
Je te dis ça parce que beaucoup te diront que le batch n'est pas assez puissant...
Après je peux pas comparer le batch aux autres langages car je ne code pas dans ces langages.
Beaucoup de questions sa me dérange pas. Je t'envoi mon msn par message privé.
Marsh Posté le 18-06-2008 à 21:01:41
Merci beaucoup.
Je vais pas te déranger tout de suite parce qu'en ce moment je prépare mon concours d'internat donc l'année va s'annoncer très dure, mais après je vais m'y mettre, donc je risque d'avoir pas mal de questions...
Marsh Posté le 19-06-2008 à 11:37:30
dans l'absolu, le vbs est largement au-dessus, puisque tu peux attaquer des objets com.
Marsh Posté le 20-06-2008 à 16:16:20
blastkiller a écrit : Ha ok j'avais mal compris.
|
plus simple :
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" |find "My Music" |awk {"print $3"}>tmp.tmp
for /F %%i in (tmp.tmp) do set variable=%%i
Tu peux remplacer le awk par |awk {"print $3,$4,$5..."} si il ya plusieurs valeurs dans ta clef
Marsh Posté le 20-06-2008 à 18:27:47
awk pas présent de base dans windows...
Moi j'ai l'habitude de coder qu'avec des commande présente dans win
Marsh Posté le 22-06-2008 à 17:44:43
Tu peux le telecharger ou si tu veux je te l'envoi par mail ... awk comme sed sont des outils qui facilite la vie et allège le code.
Marsh Posté le 23-06-2008 à 20:28:31
Citation : plus simple : |
Plus court et sans awk :
for /f "skip=4 tokens=1-2* delims=:" %%A in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music"') do set VAR=%systemdrive%%%B
Marsh Posté le 16-06-2008 à 05:14:56
Truc très bête... 2 questions qui me paraissais super simples avant...
1 : registre :
Je voudrais attribuer la donnée contenue dans la valeur "My Music" de la clé
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Pourquoi ? Pour pouvoir copier des trucs dans ce dossier même si je le change de place.
Simplissime donc.
Sur vbs, j'avais l'habitude de faire
getstringvalue racine, clé, valeur, variable
wscript.echo "la donnée est " & variable
Mais sur batch,
set variable=Reg Query(REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music" )
ne marche pas.
Il a pas l'air de capter ce que je lui demande vu qu'il m'affiche toute la chaîne de caractères...
Comment je peux faire ? What is the syntaxe plz ?
2ème qu :
Sinon autre question, c'est quoi l'équivalent de & vbCRLF & en batch ?
comment sauter des lignes dans la chaine de caractères d'une variable ?
Ex : en VBS
code = 403
erreur = "ton windows il a planted" & vbCRLF & "t'as trop joué avec WMI, n00b, code d'erreur = " & code
wscript.echo erreur
Comment j'exprime ça en batch ?