Question Pb pour passer des arguments via une var. (Résolu)

Plus d'informations
il y a 15 ans 9 mois #2432 par Franck
Bonjour,

Je découvre en ce moment le PowerShell que je souhaite utiliser pour \"monitorer\" nos serveurs avec RRDtool .
Je maîtrise très bien la chose sous Linux mais là, je rencontre un problème sur lequel je bloque depuis plusieurs heures malgré mes recherches.

Voici un résumé de mon script :
[code:1]$RRA = 'RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488'

RRDTOOL.EXE create .\RDDS\net-deb.rdd --step 300 `
DS:in:COUNTER:600:0:$1G `
DS:out:COUNTER:600:0:$1G `
$RRA[/code:1]
La variable $RRA contient ici 2 éléments séparés par un espace.
Si j'exécute le script tel quel, RRDTOOL.EXE me dit qu'il y a un problème sur les arguments (comme s'il ne voyait pas de séparateur entre les 2 éléments).
Si $RRA ne contient qu'un seul élément, ça fonctionne.
Si je remplace $RRA par son contenu dans la commande, ça fonctionne.

Comme je débute, je me dis que j'ai dû oublier quelque chose, mais je ne vois vraiment pas quoi.
Quelqu'un aurait-il une idée pour me sortir de cette impasse ?

Merci d'avance pour votre aide.<br><br>Message édité par: Arnaud, à: 17/06/08 14:06

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 9 mois #2433 par daniel soares
peut être pourrais tu essayer avec deux variables
[code:1]

$RRA1 = 'RRA:MIN:0.5:1:17568'
$RRA2 = 'RRA:MIN:0.5:7:7488'



RRDTOOL.EXE create .\RDDS_CRLF_et-deb.rdd --step 300 `

DS:in:COUNTER:600:0:$1G `

DS:out:COUNTER:600:0:$1G `

$RRA1 $RRA2
[/code:1]
ou une virgule entre les deux valeurs dans la variable $RRA
mais je dis ça d'instinct car je ne connais pas rrdtool :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 9 mois #2434 par Franck
Merci Dan de te pencher sur mon problème mais
1) Là, c'est une version light : en fait, il y a 12 éléments et ça pourrait évoluer, d'où l'intérêt d'utiliser la variable.
2) J'ai déjà essayé avec des virgules, où $RRA est alors un tableau, sans plus de succès.

Ce qui m'embête le plus, c'est que je ne sais pas si le problème vient de PS ou de RRDtool. Compte-tenu des symptômes, je penche plutôt pour la première solution.

N'y a t'il pas une autre façon d'exécuter une commande externe et/ou de lui passer ses arguments ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 9 mois #2435 par daniel soares
poste la ligne de commande qui fonctionne
ça aidera peut être a trouver la faille

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 9 mois #2436 par Franck
Ca, ça fonctionne :
[code:1]RRDTOOL.EXE create .\RDDS\net-deb.rdd --step 300 `
DS:in:COUNTER:600:0:$1G `
DS:out:COUNTER:600:0:$1G `
RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488[/code:1]
Ca également :
[code:1]$RRA = 'RRA:MIN:0.5:1:17568'

RRDTOOL.EXE create .\RDDS_CRLF_et-deb.rdd --step 300 `
DS:in:COUNTER:600:0:$1G `
DS:out:COUNTER:600:0:$1G `
$RRA[/code:1]
Mais si je rajoute d'autres éléments dans la variable $RRA, le programme RRDTOOL.EXE me dit qu'il y a un problème au niveau de ses arguments. C'est comme s'il ne reconnaissait pas l'espace à l'intérieur de la variable comme étant un caractère de séparation (j'ai essayé de redéfinir $OFS sans plus de succès).

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 9 mois #2438 par Arnaud Petitjean
Bonjour GrandPa et bienvenue dans de le forum ;)

Essaye de tout mettre dans une chaine et de passer ta variable à la commande Invoke-Expression.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.077 secondes
Propulsé par Kunena