[Ex] Lire des options passées en ligne de commande
Posté : mar. 07 août 2007 21:34
Bonjour à tous,
Voici une petite fonction qui permet, entre autre, de lire des options passées en ligne de commande:
Comment ça marche?
La fonction va détecter soit la présence d'un paramètre, soit sa valeur. Si le paramètre est présent sans valeur, la fonction retourne 'true'. Si le paramètre est présent avec une valeur, la fonction retourne la valeur. Si le paramètre n'est pas présent, la fonction retourne $default.
Exemple: On lance son script avec les options comme ceci:
La récupération des paramètres se fera comme suit:
L'intérêt de cette fonction est que les paramètres peuvent être donnés dans un ordre quelconque et ne doivent pas être tous présent.
Bonne journée à tous
Voici une petite fonction qui permet, entre autre, de lire des options passées en ligne de commande:
Code : Tout sélectionner
Func OptArgs($args, $opt, $default)
$arraySize = UBound($args)
If $arraySize <= 0 Then
Return $default
EndIf
For $i = 0 to $arraySize-1
If StringRegExp($args[$i], "^[-/]"&$opt&"$") Then
Return True
EndIf
If StringRegExp($args[$i], "^[-/]"&$opt&"[:=]") Then
Return StringRegExpReplace($args[$i],"^[-/]"&$opt&"[:=]","")
EndIf
Next
Return $default
EndFunc
La fonction va détecter soit la présence d'un paramètre, soit sa valeur. Si le paramètre est présent sans valeur, la fonction retourne 'true'. Si le paramètre est présent avec une valeur, la fonction retourne la valeur. Si le paramètre n'est pas présent, la fonction retourne $default.
Exemple: On lance son script avec les options comme ceci:
Code : Tout sélectionner
monscript /a /b=paramb /c:paramc
Code : Tout sélectionner
...
$a = OptArgs($CmdLine, "a", false)
;"/a" est présent sans valeur, la fonction retourne 'true'
$b = OptArgs($CmdLine, "b", "undef")
;"/b" est présent avec la valeur "paramb", c'est cette valeur qui sera retournée
$c = OptArgs($CmdLine, "b", "undef")
;"/c" est présent avec la valeur "paramc", c'est cette valeur qui sera retournée
$d = OptArgs($CmdLine, "d", "undef")
;"/d" est absent, la fonction retournera "undef"
...
Bonne journée à tous
