Bonjour,
je veux exécuter un programme .tcl et lui passer un paramètre comme le nom d'un fichier.
Pouvez-vous s'il vous plaît me montrer comment faire. ou me cpnseiller des liens utils.
Merci par avance.
Bonjour,
je veux exécuter un programme .tcl et lui passer un paramètre comme le nom d'un fichier.
Pouvez-vous s'il vous plaît me montrer comment faire. ou me cpnseiller des liens utils.
Merci par avance.
Bonsoir,
Il existe dans Tcl des variable globales particulières pour cela:
argv0 : le nom du script
argv : les arguments (c'est une liste)
argc : le nombre d'arguments (valant [llength $argv])
Exemple d'utilisation:
L'exécution du code se fait comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #!/bin/sh # The next line runs tclsh, passing the \ # arguments of this shell script to it. \ exec tclsh "$0" "$@" # triadd.tcl foreach {a b c} $argv {} proc TriAddition {a b c} {return [expr {$a + $b +$c}]} puts "Résultat [TriAddition $a $b $c]"
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 # Unix à la console shell % triadd.tcl 1 2 4 # Windows à la console DOS % "c:\Program Files\Tcl85\tclsh.exe" c:\Sources\triadd.tcl 1 2 4
----
Canvas
Bonjour à tous,
Je bloque sur un petit truc.
J'aimerais savoir comment passer plusieurs paramètres de la même manière que ce que vous montrez avant mais via <script>.
Je n'arrive qu'à en passer un seul.
J'aimerais pouvoir ajouter une autre adresse ip dans script et l’intégrer à la suite de ma commande pour les récupérer dans mon fichier TCL sans avoir à taper les adresses ip comme ceci même si ça marche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <script> testdir = "C:/Program Files/Ixia/IxChariot" AddDest = "172.20.200.205" </script> <process> <location>'mamachine'</location> <command>'tclsh testD.tcl %s' %(AddDest)</command> <workdir>testdir</workdir> </process>
Mais comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <command>'tclsh testD.tcl 172.20.200.215 172.20.200.205'</command>
FICHIER TCL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <command>'tclsh testD.tcl "AddSource" "AddDest"'</command>
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach {AddSource AddDest} $argv {} set e1 $AddSource set e2 $AddDest ...
Bonjour,
Comme tes <script></script> et <process></process> ne sont pas du Tcl standard, on ne peut pas t'aider hors contexte.
Par contre, ton histoire ressemble assez à du XML pour que tu utilises tDom pour lire un XML et transformer les éléments en liste Tcl (voir http://wfr.tcl.tk/1543).
Sinon, ton foreach est mal écrit, pour que ça marche il fait faire comme ça :
Sinon, seule les dernières instances de AddSource et AddDest seront traitées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach {AddSource AddDest} $argv { set e1 $AddSource set e2 $AddDest ... }
Partager