Question
Pb pour passer des arguments via une var. (Résolu)
- Franck
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 15 ans 9 mois #2432
par Franck
Pb pour passer des arguments via une var. (Résolu) a été créé 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
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.
- daniel soares
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 15 ans 9 mois #2433
par daniel soares
Réponse de daniel soares sur le sujet Re:Pb pour passer des arguments via une variable
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
[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.
- Franck
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 15 ans 9 mois #2434
par Franck
Réponse de Franck sur le sujet Re:Pb pour passer des arguments via une variable
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 ?
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.
- daniel soares
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 15 ans 9 mois #2435
par daniel soares
Réponse de daniel soares sur le sujet Re:Pb pour passer des arguments via une variable
poste la ligne de commande qui fonctionne
ça aidera peut être a trouver la faille
ça aidera peut être a trouver la faille
Connexion ou Créer un compte pour participer à la conversation.
- Franck
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 15 ans 9 mois #2436
par Franck
Réponse de Franck sur le sujet Re:Pb pour passer des arguments via une variable
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).
[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.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 15 ans 9 mois #2438
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Pb pour passer des arguments via une variable
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
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
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Pb pour passer des arguments via une var. (Résolu)