Guillemets et doubles guillemets
Bonjour,
J'ai pas mal cherché (Recherche et FAQ), mais je n'ai pas trouvé mon bonheur. En espérant que la réponse n'est pas sous mes yeux :roll:
J'ai un script de mise à jour qui doit enregistrer une dll, bien évidement, il faut être admin, donc runas et tout et tout.
Le code (simplifié) ressemble à ça:
Code:
1 2 3 4 5
| Set wsh=WScript.CreateObject("WScript.Shell")
File = "C:\Progra~1\Nexfi\TrackerDev\Malib.dll"
regCmd = "regsvr32 " & File
RunasCmd = "runas /user:admin """ & regCmd& """"
wsh.Run RunasCmd |
Là, aucun problème, ça marche, c'est cool. Seulement voilà, dans le script complet, la variable 'File' arrive toute bien initialisée avec un magnifique nom long et son espace au milieu:
Code:
File = "C:\Program Files\Nexfi\TrackerDev\Malib.dll"
Du coup, le regsvr32 m'explique gentilment qu'il ne trouve pas C:\Program :?
Bon, ben moi, pas con, j'ajoute des guillemets, parceque les guillements, c'est bien: :P
Code:
File = """C:\Program Files\Nexfi\TrackerDev\Malib.dll"""
Et là, déception, la chaîne de caractères finale ressemble à ça:
runas /user:javault_m "regsvr32 "C:\Program Files\Nexfi\TrackerDev\Malib.dll""
Et bien entendu, ça ne fonctionne pas très bien :aie:
J'ai essayé pas mal de combinaisons avec, entre autre, utilisation de cmd /c, rien à faire, il y a toujours au final une commande dont l'argument doit être entre guillement, commande qui prend elle aussi un paramètre entre guillemet...
Je vais poursuivre mes recherches, mais si quelqu'un a la réponse, je suis plutôt preneur.
Merci d'avance.
Marc