[R] Exécuter une ligne de commande dans un AutoIt

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Exécuter une ligne de commande dans un AutoIt

#21

Message par jguinch »

Est-ce que ce code ne suffirait pas ?
► Afficher le texte
Modifié en dernier par jguinch le jeu. 27 août 2015 12:30, modifié 1 fois.
Raison : Remplacement de @sSystemDir par $sSystemDir
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Lebalbo2013
Niveau 4
Niveau 4
Messages : 63
Enregistré le : ven. 19 déc. 2014 18:11
Status : Hors ligne

Re: [..] Exécuter une ligne de commande dans un AutoIt

#22

Message 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?
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Exécuter une ligne de commande dans un AutoIt

#23

Message par jguinch »

Et avec la version non compilée ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Exécuter une ligne de commande dans un AutoIt

#24

Message 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.



@+
L'entraide, c'est mon dada ;)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Exécuter une ligne de commande dans un AutoIt

#25

Message 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.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Exécuter une ligne de commande dans un AutoIt

#26

Message par franco »

Salut Et surtout merci pour ces informations :)

Ca me sera utile plus tard je pense. ;)



+
L'entraide, c'est mon dada ;)
Lebalbo2013
Niveau 4
Niveau 4
Messages : 63
Enregistré le : ven. 19 déc. 2014 18:11
Status : Hors ligne

Re: [..] Exécuter une ligne de commande dans un AutoIt [R]

#27

Message par Lebalbo2013 »

Merci à tous pour votre aide!!
çà fonctionne :D :!: .@jguinch Il fallait juste corriger l'erreur que tu as détectée.
Bonne journée.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Exécuter une ligne de commande dans un AutoIt

#28

Message par jguinch »

Merci de passe le sujet en [R] si le problème est résolu.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Lebalbo2013
Niveau 4
Niveau 4
Messages : 63
Enregistré le : ven. 19 déc. 2014 18:11
Status : Hors ligne

Re: [R] Exécuter une ligne de commande dans un AutoIt

#29

Message par Lebalbo2013 »

Désolé,
Je l'avais fait mais pas de la bonne manière.Je pense que c'est mieux maintenant.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Exécuter une ligne de commande dans un AutoIt

#30

Message par jguinch »

Il faut modifier le titre du premier message.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre