.Bat > Problème code utilisation clef registre

Mircromega -  
 micromega -
Bonjour à tous,

Afin de me déplacer dans un chemin que me renvoie une clef registre dans le but de mettre en variable un chemin désiré, j’utilise le code « .bat » :

setlocal enableDelayedExpansion 
For /F "tokens=2,*" %%a in ('reg query "HKEY_CLASSES_ROOT\Clef Registre" ^| findstr REG_') do ( 
for /F "tokens=1-16 delims=:\" %%q in ("%%b") do (
SET O=%%q:\%%r\%%s\%%t
) 
) 
)

Mon problème étant que selon la version de Windows cela ne fonctionne pas.
Pour une version 32Bits de Windows, je change seulement « tokens=2 » par « tokens=3 » et ça roule. Mais par contre j’ai un problème lorsqu’il s’agit d’une version 64 Bits de Windows 10 Famille ou Pro : Il s’agit d’un même type de système, mais si j’adapte le code sur l’un le code devient inefficace sur l’autre.

D’où vient cette différence étant donné que le système et l’architecture sont le même ?
En général le problème est que la clef devient difforme sur l’une des versions. J’obtiens par exemple en variable « REG_SZ C:\Program Files (x86)\Dossier » (ce qui n’est pas un chemin valide évidemment).

Y a-t-il un moyen de remédier à ce problème pour que le code soit exécutable sur les différentes versions de Windows ?

Merci !
A voir également:

1 réponse

micromega
 
Bonjour,

Personne n'a d'idée sur ce problème ?

A quoi sert "tokens" en fonction des versions de Windows ?

Merci
0