Question
Pb pour passer des arguments via une var. (Résolu)
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 15 ans 9 mois #2441
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Pb pour passer des arguments via une variable
Salut,
de mon coté je pense que ton soft attend 2 paramètres.
A le lecture de la ligne de commande je peux en déduire que RRA:MIN: et DS:in:COUNTER sont des entêtes.
Dans ce cas tu dois passer 2 chaines, un petit test avec un batch:
[code:1]@echo off
echo parametre 1 :%1
echo parametre 2 :%2 [/code:1]
Les tests d'appel :
[code:1]
$RRA = 'RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488'
.\t.cmd $rra
parametre 1 :\"RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488\"
parametre 2 :
.\t.cmd \"RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488\"
parametre 1 :\"RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488\"
parametre 2 :
.\t.cmd RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488
parametre 1 :RRA:MIN:0.5:1:17568
parametre 2 :RRA:MIN:0.5:7:7488
# parametres sans espaces
$RRA = 'RRA:MIN:0.5:1:17568-RRA:MIN:0.5:7:7488'
.\t.cmd $rra
parametre 1 :RRA:MIN:0.5:1:17568-RRA:MIN:0.5:7:7488
parametre 2 :
[/code:1]
De ce que je sais sur le parsing d'une ligne de commande l'espace est un délimiteur et les guillemets autorisent une paramètre contenant un ou + espaces (voir le dernier test).
A vérifier
[edit]
Test avec un tableau de chaîne:
[code:1]
$RRA=(\"RRA:MIN:0.5:1:17568\",\"RRA:MIN:0.5:7:7488\"«»)
.\t.cmd $rra
parametre 1 :RRA:MIN:0.5:1:17568
parametre 2 :RRA:MIN:0.5:7:7488
[/code:1]
c'est déjà plus mieux <br><br>Message édité par: Laurent Dardenne, à: 16/06/08 16:25
de mon coté je pense que ton soft attend 2 paramètres.
A le lecture de la ligne de commande je peux en déduire que RRA:MIN: et DS:in:COUNTER sont des entêtes.
Dans ce cas tu dois passer 2 chaines, un petit test avec un batch:
[code:1]@echo off
echo parametre 1 :%1
echo parametre 2 :%2 [/code:1]
Les tests d'appel :
[code:1]
$RRA = 'RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488'
.\t.cmd $rra
parametre 1 :\"RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488\"
parametre 2 :
.\t.cmd \"RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488\"
parametre 1 :\"RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488\"
parametre 2 :
.\t.cmd RRA:MIN:0.5:1:17568 RRA:MIN:0.5:7:7488
parametre 1 :RRA:MIN:0.5:1:17568
parametre 2 :RRA:MIN:0.5:7:7488
# parametres sans espaces
$RRA = 'RRA:MIN:0.5:1:17568-RRA:MIN:0.5:7:7488'
.\t.cmd $rra
parametre 1 :RRA:MIN:0.5:1:17568-RRA:MIN:0.5:7:7488
parametre 2 :
[/code:1]
De ce que je sais sur le parsing d'une ligne de commande l'espace est un délimiteur et les guillemets autorisent une paramètre contenant un ou + espaces (voir le dernier test).
A vérifier
[edit]
Test avec un tableau de chaîne:
[code:1]
$RRA=(\"RRA:MIN:0.5:1:17568\",\"RRA:MIN:0.5:7:7488\"«»)
.\t.cmd $rra
parametre 1 :RRA:MIN:0.5:1:17568
parametre 2 :RRA:MIN:0.5:7:7488
[/code:1]
c'est déjà plus mieux <br><br>Message édité par: Laurent Dardenne, à: 16/06/08 16:25
Tutoriels PowerShell
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 #2452
par Franck
Réponse de Franck sur le sujet Re:Pb pour passer des arguments via une variable
Bonjour,
Merci à vous deux pour ces deux qui fonctionnent parfaitement !
Solution de Arnaud :
[code:1]$RRA = ' `
RRA:MIN:0.5:1:17568 `
RRA:MIN:0.5:7:7488 `
RRA:MIN:0.5:62:3456 `
RRA:MIN:0.5:366:2880 `
RRA:MIN:0.5:1826:576 `
RRA:AVERAGE:0.5:1:17568 `
RRA:AVERAGE:0.5:7:7488 `
RRA:AVERAGE:0.5:62:3456 `
RRA:AVERAGE:0.5:366:2880 `
RRA:AVERAGE:0.5:1826:576 `
RRA:MAX:0.5:1:17568 `
RRA:MAX:0.5:7:7488 `
RRA:MAX:0.5:62:3456 `
RRA:MAX:0.5:366:2880 `
RRA:MAX:0.5:1826:576'
$REP_RDDS='.\RRDs'
$COMMANDE = '..\RRDTOOL.EXE create $REP_RDDS\net-deb.rdd --step 300 `
DS:in:COUNTER:600:0:2GB `
DS:out:COUNTER:600:0:2GB `
' + $RRA
Invoke-Expression $COMMANDE[/code:1]
Solution de Laurent Dardenne :
[code:1]$RRA = (
\"RRA:MIN:0.5:1:17568\",
\"RRA:MIN:0.5:7:7488\",
\"RRA:MIN:0.5:62:3456\",
\"RRA:MIN:0.5:366:2880\",
\"RRA:MIN:0.5:1826:576\",
\"RRA:AVERAGE:0.5:1:17568\",
\"RRA:AVERAGE:0.5:7:7488\",
\"RRA:AVERAGE:0.5:62:3456\",
\"RRA:AVERAGE:0.5:366:2880\",
\"RRA:AVERAGE:0.5:1826:576\",
\"RRA:MAX:0.5:1:17568\",
\"RRA:MAX:0.5:7:7488\",
\"RRA:MAX:0.5:62:3456\",
\"RRA:MAX:0.5:366:2880\",
\"RRA:MAX:0.5:1826:576\"«»)
$REP_RDDS='.\RRDs'
..\RRDTOOL.EXE create $REP_RDDS\net-deb.rdd --step 300 `
DS:in:COUNTER:600:0:2GB `
DS:out:COUNTER:600:0:2GB `
$RRA[/code:1]
J'ai quand même une petite préférence pour cette deuxième solution. Ce qui m'étonne, c'est que j'étais persuadé d'avoir essayé quelque chose dans ce genre...
J'espère mieux m'en sortir avec les autres scripts.
En tout cas, un grand merci à vous trois pour votre aide !
Merci à vous deux pour ces deux qui fonctionnent parfaitement !
Solution de Arnaud :
[code:1]$RRA = ' `
RRA:MIN:0.5:1:17568 `
RRA:MIN:0.5:7:7488 `
RRA:MIN:0.5:62:3456 `
RRA:MIN:0.5:366:2880 `
RRA:MIN:0.5:1826:576 `
RRA:AVERAGE:0.5:1:17568 `
RRA:AVERAGE:0.5:7:7488 `
RRA:AVERAGE:0.5:62:3456 `
RRA:AVERAGE:0.5:366:2880 `
RRA:AVERAGE:0.5:1826:576 `
RRA:MAX:0.5:1:17568 `
RRA:MAX:0.5:7:7488 `
RRA:MAX:0.5:62:3456 `
RRA:MAX:0.5:366:2880 `
RRA:MAX:0.5:1826:576'
$REP_RDDS='.\RRDs'
$COMMANDE = '..\RRDTOOL.EXE create $REP_RDDS\net-deb.rdd --step 300 `
DS:in:COUNTER:600:0:2GB `
DS:out:COUNTER:600:0:2GB `
' + $RRA
Invoke-Expression $COMMANDE[/code:1]
Solution de Laurent Dardenne :
[code:1]$RRA = (
\"RRA:MIN:0.5:1:17568\",
\"RRA:MIN:0.5:7:7488\",
\"RRA:MIN:0.5:62:3456\",
\"RRA:MIN:0.5:366:2880\",
\"RRA:MIN:0.5:1826:576\",
\"RRA:AVERAGE:0.5:1:17568\",
\"RRA:AVERAGE:0.5:7:7488\",
\"RRA:AVERAGE:0.5:62:3456\",
\"RRA:AVERAGE:0.5:366:2880\",
\"RRA:AVERAGE:0.5:1826:576\",
\"RRA:MAX:0.5:1:17568\",
\"RRA:MAX:0.5:7:7488\",
\"RRA:MAX:0.5:62:3456\",
\"RRA:MAX:0.5:366:2880\",
\"RRA:MAX:0.5:1826:576\"«»)
$REP_RDDS='.\RRDs'
..\RRDTOOL.EXE create $REP_RDDS\net-deb.rdd --step 300 `
DS:in:COUNTER:600:0:2GB `
DS:out:COUNTER:600:0:2GB `
$RRA[/code:1]
J'ai quand même une petite préférence pour cette deuxième solution. Ce qui m'étonne, c'est que j'étais persuadé d'avoir essayé quelque chose dans ce genre...
J'espère mieux m'en sortir avec les autres scripts.
En tout cas, un grand merci à vous trois pour votre aide !
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 15 ans 9 mois #2458
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
Pas de problème GrandPa Avec plaisir.
Comme ça tu n'as que l'embarras du choix, et c'est toujours mieux comme ça !
Arnaud
Comme ça tu n'as que l'embarras du choix, et c'est toujours mieux comme ça !
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.071 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Pb pour passer des arguments via une var. (Résolu)