[R] Problème utilisation $cmdline

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Tilala
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 10 nov. 2015 11:48
Status : Hors ligne

[R] Problème utilisation $cmdline

#1

Message par Tilala »

Bonjour,

Je rencontre un petit problème avec l'utilisation des command line.

J'utilise un script qui va automatiser des actions afin de calculer des temps pour chaque actions. Ces temps ensuite enregistrés dans un fichier.csv

Je cherche a utiliser 3 paramètres le premier $cmdline[1] me permet de définir le nombre de boucle le deuxieme le temps a attendre entre chaque boucle. Et le troisième (celui qui me pose problème) devrait me permettre de renseigner le chemin du fichier csv. Exemple: <path>monscript.exe 5 5000 c:\users\<username>\desktop\temps.csv

Ci dessous mon script sans les actions d'automatisation propre à l'application ce script fonctionne car le paramètre 3 n'est pas implémenté.
► Afficher le texte
Je voudrais remplacer la variable $File par $cmdline[3] comme ceci:
► Afficher le texte
Du coup je lance cette commande: C:\Users\L021322\Desktop\Autoit\Test.exe 5 15 C:\Users\L021322\
Desktop\temps.csv

L'erreur qui en ressort est la suivante: Array variable has incorrect number if subscript or subscript dimension range exceeded.

J'ai essayé de passer le paramètre 3 en 1, en enlevant les autres paramètre et la boucle. Même problème :/

Merci de votre aide si vous avez une idée!
Modifié en dernier par Tilala le ven. 29 avr. 2016 15:44, modifié 1 fois.
Faco
Niveau 4
Niveau 4
Messages : 80
Enregistré le : lun. 29 juil. 2013 18:09
Status : Hors ligne

Re: [...] Problème utilisation $cmdline

#2

Message par Faco »

une idée pour gérer un peux mieux tes cmdline :

Code : Tout sélectionner

Global $var1,$var2,$var3
Global $nbVar = 3

If $CmdLine[0] <> $nbVar Then
	Local $data = "Erreur de syntaxe : " & @CRLF & _
				"Nombre de variables attendues : " & $nbVar & @CRLF & _
				"Nombre de variables : " & $CmdLine[0] & @CRLF
	For $i =1 To $CmdLine[0]
		$data = $data & "Var" & $i & " : " &  $CmdLine[$i] & @CRLF
	Next
	MsgBox(0,"Error", $data)
	Exit
Else
	$var1 = $CmdLine[1]
	$var2 = $CmdLine[2]
	$var3 = $CmdLine[3]
	......
EndIf
(j'ai pas testé !!!!)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [...] Problème utilisation $cmdline

#3

Message par jguinch »

Il faut savoir que la variable $CmdLine est une variable prédéfinie par AutoIt, ça ne sert absolument à rien de la déclarer en début de script.
En plus, la déclaration, telle qu'elle a été faite, n'a aucun sens :

Code : Tout sélectionner

global $cdmline[0] ; déclare un vide tableau de 0 ligne
global $cdmline[1] ; déclare un tableau vide de 1 ligne
global $cdmline[2] ; déclare un tableau vide de 2 lignes
Et là, je ne comprends pas pourquoi $cdmline alors qu'on parle de $cmdline ??

Voilà comment cette variable fonctionne :
$CmdLine[0] contient le nombre de paramètres passés au script (il défini le nombre de lignes dans le tableau (+1 ligne) )
$CmdLine[1] contient le premier paramètre
$CmdLine[2] contient le deuxième paramètre
...

Si on lance notre script avec 1 seul paramètre, alors on aura un tableau de 2 lignes :
- $CmdLine[0] sera égal à 1
- $CmdLine[1] contiendra le premier (seul) paramètre
- L'utilisation de $CmdLine[2] (ou plus) provoquera un message d'erreur car l'index 2 n'existe pas dans le tableau (qui va de l'index 0 à l'lindex 1 pour un tableau de 2 lignes)

Voilà, j'espère t'avoir éclairé...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Tilala
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 10 nov. 2015 11:48
Status : Hors ligne

Re: [R] Problème utilisation $cmdline

#4

Message par Tilala »

Bonjour et désolé pour l’absence de retour. Je me suis effectivement rendu compte de mon erreur... Merci pour les informations complémentaires !
Répondre