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

Plus d'informations
il y a 15 ans 9 mois #2441 par Laurent Dardenne
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 :laugh:<br><br>Message édité par: Laurent Dardenne, à: 16/06/08 16:25

Tutoriels PowerShell

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

Plus d'informations
il y a 15 ans 9 mois #2452 par Franck
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 = (
\&quot;RRA:MIN:0.5:1:17568\&quot;,
\&quot;RRA:MIN:0.5:7:7488\&quot;,
\&quot;RRA:MIN:0.5:62:3456\&quot;,
\&quot;RRA:MIN:0.5:366:2880\&quot;,
\&quot;RRA:MIN:0.5:1826:576\&quot;,
\&quot;RRA:AVERAGE:0.5:1:17568\&quot;,
\&quot;RRA:AVERAGE:0.5:7:7488\&quot;,
\&quot;RRA:AVERAGE:0.5:62:3456\&quot;,
\&quot;RRA:AVERAGE:0.5:366:2880\&quot;,
\&quot;RRA:AVERAGE:0.5:1826:576\&quot;,
\&quot;RRA:MAX:0.5:1:17568\&quot;,
\&quot;RRA:MAX:0.5:7:7488\&quot;,
\&quot;RRA:MAX:0.5:62:3456\&quot;,
\&quot;RRA:MAX:0.5:366:2880\&quot;,
\&quot;RRA:MAX:0.5:1826:576\&quot;«»)

$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 ! :kiss:

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

Plus d'informations
il y a 15 ans 9 mois #2458 par Arnaud Petitjean
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

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
Propulsé par Kunena