Page 2 sur 2
Re: [..] Exécuter une ligne de commande dans un AutoIt
Posté : jeu. 27 août 2015 09:25
par jguinch
Est-ce que ce code ne suffirait pas ?
► Afficher le texte
Code : Tout sélectionner
#RequireAdmin
#Include <File.au3>
$sSystemDir = ( (StringInStr(@OSArch, "64") AND NOT @AutoItX64) ? @WindowsDir & "\sysnative" : @SystemDir )
$aList = _FileListToArray (@WindowsDir & "\servicing\Packages", "*10*.mum", $FLTA_FILES)
For $i = 1 To UBound($aList) - 1
RunWait($sSystemDir & "\pkgmgr /up:" & $aList[$i] & " /quiet /norestart") ; remplacement de @SystemDir par @WindowsDir & "\Sysnative" pour accéder au commandes 64 bits.
Next
Re: [..] Exécuter une ligne de commande dans un AutoIt
Posté : jeu. 27 août 2015 10:32
par Lebalbo2013
Bonjour et merci encore,
En exécutant le script j'ai ce message:
"Line 2785 (File"c:\Chemin_du_script\script.exe"): Error:Unknownmacro".
Je suis entrain de chercher à comprendre où e trouve l'erreur mais pour l'instant j'ai pas trouvé.
Aurais-tu une piste?
Re: [..] Exécuter une ligne de commande dans un AutoIt
Posté : jeu. 27 août 2015 11:25
par jguinch
Et avec la version non compilée ?
Re: [..] Exécuter une ligne de commande dans un AutoIt
Posté : jeu. 27 août 2015 11:58
par franco
Salut.
Je pense que c'est lié
à la compilation et à ceci :
Code : Tout sélectionner
$sSystemDir = ( (StringInStr(@OSArch, "64") AND NOT @AutoItX64) ? @WindowsDir & "\sysnative" : @SystemDir )
- Mon pc est en 64 bits.
- J'ai codé ceci :
Code : Tout sélectionner
$sSystemDir = ( (StringInStr(@OSArch, "64") AND NOT @AutoItX64) ? @WindowsDir & "\sysnative" : @SystemDir )
MsgBox(0,"",$sSystemDir))
- J'ai cliqué droit sur le script et j'ai choisi de lancer le script en X86.
- j'ai obtenu : c:\windows\sysnative : sauf que je n'ai pas ce dossier.
- J'ai ensuite cliqué droit sur le script et j'ai choisi de lancer le script en X64.
- j'ai obtenu : c:\windows\system32 : et donc pas de souci.
Je pense donc que tu dois
le compiler en X64.
J'ai compilé en X86 et en X64, et le résultat est le même : la
version compilée en 64 bits me retourne le bon dossier.
@+
Re: [..] Exécuter une ligne de commande dans un AutoIt
Posté : jeu. 27 août 2015 12:28
par jguinch
En fait j'ai fait une faute de frappe dans le Run, il faut remplacer
@sSystemDir par
$sSystemDir
@franco : tu n'as pas le dossier Sysnative car il n'est pas accessible depuis l'explorateur, tout simplement
C'est un dossier virtuel (sous x64) qui permet d'accéder au répertoire system32 natif (c:\windows\system32) depuis un programme 32 bits (c'est la redirection WOW64 :
https://msdn.microsoft.com/fr-fr/librar ... 85%29.aspx)
Avec un script x86 :
- si tu fais
Run ( @ComSpec & " /k", @SystemDir), tu te retrouves dans c:\windows\syswow64 (le répertoire system32 pour les programmes x86)
- Si tu fais
Run ( @ComSpec & " /k", @WindowsDir & "\system32"), tu te retrouves également dans c:\windows\syswow64 car system32 est redirigé vers syswow64 pour les programmes 32 bits
- Si tu fais
Run ( @ComSpec & " /k", @WindowsDir & "\sysnative"), tu te retrouves dans le c:\windows\system32 natif (dans le lien plus haut, c'est précisé :
32-bit applications can access the native system directory by substituting %windir%\Sysnative for %windir%\System32.)
La commande pkgmgr est disponible en version 32 et 64 bits, respectivement sous c:\windows\syswow64 et c:\windows\system32.
Ce genre de commande doit généralement s'exécuter en 64 bits, c'est pour ça que j'ai utilisé
@WindowsDir & "\Sysnative" au lien de
@SystemDir.
Re: [..] Exécuter une ligne de commande dans un AutoIt
Posté : jeu. 27 août 2015 13:22
par franco
Salut Et surtout merci pour ces informations
Ca me sera utile plus tard je pense.
+
Re: [..] Exécuter une ligne de commande dans un AutoIt [R]
Posté : jeu. 27 août 2015 14:03
par Lebalbo2013
Merci à tous pour votre aide!!
çà fonctionne

.@jguinch Il fallait juste corriger l'erreur que tu as détectée.
Bonne journée.
Re: [..] Exécuter une ligne de commande dans un AutoIt
Posté : jeu. 27 août 2015 14:40
par jguinch
Merci de passe le sujet en [R] si le problème est résolu.
Re: [R] Exécuter une ligne de commande dans un AutoIt
Posté : jeu. 27 août 2015 14:53
par Lebalbo2013
Désolé,
Je l'avais fait mais pas de la bonne manière.Je pense que c'est mieux maintenant.
Re: [..] Exécuter une ligne de commande dans un AutoIt
Posté : jeu. 27 août 2015 14:55
par jguinch
Il faut modifier le titre du premier message.