Question (Résolu)Test param et retour dans script principal

Plus d'informations
il y a 16 ans 7 mois #5082 par MiKL
Bonsoir ;)

J'ai un net.ps1.
Dans ce net.ps1, ne figurent que des fonctions que j'appelle depuis d'autres scripts.
Parmi, elles:
[code:1]function global:fonctionPing {
param([string]$machine)
$ping = get-wmiobject -query \"SELECT * FROM Win32_PingStatus WHERE Address = '$machine'\"
if ($ping.StatusCode -eq 0) {return $true}
else {return $false}
}[/code:1]

le script d'appel:
[code:1]. 'net.ps1'
$hote = '192.168.0.10'
if (!(fonctionPing -m $machine)) {'Impossible de joindre ' + $machine}
else {'OK'}[/code:1]

Tout ça fonctionne mais dans les fonctions, je voudrais tester si tous les paramètres sont bien passés et récupérer l'info.
J'ai bien essayé des choses comme
if (!$machine) {'usage = xxxxxxx'}

Le pb est que les fonctions sont extérieures aux scripts.
Je ne sais pas si je suis clair...<br><br>Message édité par: Arnaud, à: 17/08/09 16:33

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

Plus d'informations
il y a 16 ans 7 mois #5084 par Laurent Dardenne
Tu peux déjà utiliser ceci :
[code:1]
function global:fonctionPing {
param([string]$machine=$(Throw \&quot;usage ...\&quot;«»)
...
[/code:1]
Voir aussi ce post , car PS réserve parfois qq mauvaises surprises de ce coté là enfin si toutefois on souhaite une gestion fine des paramètres.

Tutoriels PowerShell

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

Plus d'informations
il y a 16 ans 7 mois #5086 par MiKL
Bonjour et merci.

C'est ce que je recherche effectivement mais sur la console s'affiche

[code:1]usage ...
à C:\powershell\FONCTIONS\reseau\Net.ps1: ligne:2 caractère:29
+ param([string]$machine=$(throw &lt;&lt;&lt;&lt; \&quot;usage ...\&quot;«»))[/code:1]

Alors que je ne souhaite affiché que l'usage...ce qui est dans $error[0]

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

Plus d'informations
il y a 16 ans 7 mois #5087 par Laurent Dardenne
Dans ce cas, utilise l'approche suivante :
[code:1]
if (($machine -eq $null ) -or ($machine -eq [String]::Empty))
{Write-host 'usage = xxxxxxx';return $false}
#suite
[/code:1]
Tout en sachant que dans le cas suivant, avec ou sans exception le paramètre est renseigné :
[code:1]
fonctionPing 10.5
[/code:1]
mais n'est pas valide, mais dans ton cas tu n'as peut-être besoin de blinder :)

Tutoriels PowerShell

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

Plus d'informations
il y a 16 ans 7 mois #5089 par MiKL
Parfait !
Merci encore ;)

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

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