Question
(Résolu)Test param et retour dans script principal
- MiKL
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 16 ans 7 mois #5082
par MiKL
(Résolu)Test param et retour dans script principal a été créé 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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 7 mois #5084
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Test param et retout dans script principal
Tu peux déjà utiliser ceci :
[code:1]
function global:fonctionPing {
param([string]$machine=$(Throw \"usage ...\"«»)
...
[/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.
[code:1]
function global:fonctionPing {
param([string]$machine=$(Throw \"usage ...\"«»)
...
[/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.
- MiKL
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 16 ans 7 mois #5086
par MiKL
Réponse de MiKL sur le sujet Re:Test param et retout dans script principal
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 <<<< \"usage ...\"«»))[/code:1]
Alors que je ne souhaite affiché que l'usage...ce qui est dans $error[0]
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 <<<< \"usage ...\"«»))[/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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 7 mois #5087
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Test param et retout dans script principal
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
[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.
- MiKL
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 16 ans 7 mois #5089
par MiKL
Réponse de MiKL sur le sujet Re:Test param et retout dans script principal
Parfait !
Merci encore
Merci encore
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.066 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- (Résolu)Test param et retour dans script principal