Question Tester si un objet est null
- CHOULANT Noham (MVP)
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 24
- Remerciements reçus 0
il y a 17 ans 2 mois #3685
par CHOULANT Noham (MVP)
Tester si un objet est null a été créé par CHOULANT Noham (MVP)
Bonjour
Comment puis je savoir si un objet est null ?
[code:1]
$tfs = get-tfs monserver
if($tfs -eq null)
{
}
[/code:1]
Cela ne marche pas
Merci
Comment puis je savoir si un objet est null ?
[code:1]
$tfs = get-tfs monserver
if($tfs -eq null)
{
}
[/code:1]
Cela ne marche pas
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 17 ans 2 mois #3686
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Tester si un objet est null
Tout d'abord, une coquille s'est glissée dans ton script. La constante null s'écrit avec un $ devant:
[code:1]
$tfs = get-tfs monserver
if ($tfs -eq $null)
{
}
[/code:1]
Si ça ne marche toujours pas, il est possible que get-tfs ait attribué un objet à $tfs même si son contenu est vide, ce qui est vu par PowerShell comme autre chose que $null. Tu peux alors t'en sortir de plusieurs façons:
[code:1]
# méthode 1:
if ($tfs -eq \"\"«»)
# méthode 2:
if (!$tfs.length)
[/code:1]
J'espère que ça te dépannera!
Janel<br><br>Message édité par: janel, à: 10/01/09 16:57
[code:1]
$tfs = get-tfs monserver
if ($tfs -eq $null)
{
}
[/code:1]
Si ça ne marche toujours pas, il est possible que get-tfs ait attribué un objet à $tfs même si son contenu est vide, ce qui est vu par PowerShell comme autre chose que $null. Tu peux alors t'en sortir de plusieurs façons:
[code:1]
# méthode 1:
if ($tfs -eq \"\"«»)
# méthode 2:
if (!$tfs.length)
[/code:1]
J'espère que ça te dépannera!
Janel<br><br>Message édité par: janel, à: 10/01/09 16:57
Connexion ou Créer un compte pour participer à la conversation.
- CHOULANT Noham (MVP)
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 24
- Remerciements reçus 0
il y a 17 ans 2 mois #3687
par CHOULANT Noham (MVP)
Réponse de CHOULANT Noham (MVP) sur le sujet Re:Tester si un objet est null
Merci
je ne savais pas qu'une variable pour le null existait
je ne savais pas qu'une variable pour le null existait
Connexion ou Créer un compte pour participer à la conversation.
- Patrick Berthon
-
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 100
- Remerciements reçus 0
il y a 17 ans 2 mois #3688
par Patrick Berthon
Réponse de Patrick Berthon sur le sujet Re:Tester si un objet est null
Bonsoir,
je n'appellerais pas $null une variable, je pense que tu auras du mal à l'affecter.
ça doit être une notation conventionnelle comme $true ou $false.
++, Zylwee
je n'appellerais pas $null une variable, je pense que tu auras du mal à l'affecter.
ça doit être une notation conventionnelle comme $true ou $false.
++, Zylwee
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 17 ans 2 mois #3690
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Tester si un objet est null
Au sens de PowerShell, ce sont bien des variables:
[code:1]
PS> get-variable null | format-list
Value :
Description : References to the null variable always return the null value. Assignments have no effect.
Options : None
Name : null
Visibility : Public
Module :
ModuleName :
Attributes : {}
[/code:1]
En fait, une variable peut être définie comme une constante, et c'est le cas de $true et de $false notamment:
[code:1]
PS> get-variable true | format-list
Name : true
Description : Boolean True
Value : True
Visibility : Public
Module :
ModuleName :
Options : Constant, AllScope
Attributes : {}
[/code:1]
L'option Constant empêche toute affectation d'une nouvelle valeur par un utilisateur. Cette option diffère de l'option ReadOnly qui empêche toute nouvelle affectation sauf si on utilise l'option -force. ReadOnly est donc plus un garde-fou, alors que Constant est bien une règle stricte.
On peut définir soi-même ses propres constantes:
[code:1]
PS> new-variable -description \"Ma date de naissance\" -option Constant -value ([datetime]\"09/23/1967\"«») -name BirthDate
PS> $BirthDate
samedi 23 septembre 1967 00:00:00
PS> $BirthDate = \"hello\"
Cannot overwrite variable BirthDate because it is read-only or constant.
...
PS> remove-variable BirthDate
Remove-Variable : Cannot remove variable BirthDate because it is constant or read-only. If the variable is read-only, try the operation again specifying the Force option.
...
[/code:1]
Attention: comme le montre le dernier exemple ci-dessus, et contrairement à une variable en ReadOnly, une constante ne peut pas être supprimée même avec l'option -force.
Mais pour en revenir à $null, c'est un cas particulier, car contrairement aux autres variables non modifiables il n'est pas défini comme une constante. En effet, on voit bien dans les propriétés de la variable qu'elle n'a aucune option. On peut donc supposer que son \"cas\" est traité explicitement par l'interpréteur de PowerShell.
Janel
[code:1]
PS> get-variable null | format-list
Value :
Description : References to the null variable always return the null value. Assignments have no effect.
Options : None
Name : null
Visibility : Public
Module :
ModuleName :
Attributes : {}
[/code:1]
En fait, une variable peut être définie comme une constante, et c'est le cas de $true et de $false notamment:
[code:1]
PS> get-variable true | format-list
Name : true
Description : Boolean True
Value : True
Visibility : Public
Module :
ModuleName :
Options : Constant, AllScope
Attributes : {}
[/code:1]
L'option Constant empêche toute affectation d'une nouvelle valeur par un utilisateur. Cette option diffère de l'option ReadOnly qui empêche toute nouvelle affectation sauf si on utilise l'option -force. ReadOnly est donc plus un garde-fou, alors que Constant est bien une règle stricte.
On peut définir soi-même ses propres constantes:
[code:1]
PS> new-variable -description \"Ma date de naissance\" -option Constant -value ([datetime]\"09/23/1967\"«») -name BirthDate
PS> $BirthDate
samedi 23 septembre 1967 00:00:00
PS> $BirthDate = \"hello\"
Cannot overwrite variable BirthDate because it is read-only or constant.
...
PS> remove-variable BirthDate
Remove-Variable : Cannot remove variable BirthDate because it is constant or read-only. If the variable is read-only, try the operation again specifying the Force option.
...
[/code:1]
Attention: comme le montre le dernier exemple ci-dessus, et contrairement à une variable en ReadOnly, une constante ne peut pas être supprimée même avec l'option -force.
Mais pour en revenir à $null, c'est un cas particulier, car contrairement aux autres variables non modifiables il n'est pas défini comme une constante. En effet, on voit bien dans les propriétés de la variable qu'elle n'a aucune option. On peut donc supposer que son \"cas\" est traité explicitement par l'interpréteur de PowerShell.
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Patrick Berthon
-
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 100
- Remerciements reçus 0
il y a 17 ans 2 mois #3692
par Patrick Berthon
Réponse de Patrick Berthon sur le sujet Re:Tester si un objet est null
Bonjour,
ah ben tiens, j'ai bien fait d'ouvrir ma gueule
j'ai appris quelque chose !
Merci !
ah ben tiens, j'ai bien fait d'ouvrir ma gueule
Merci !
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.096 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Tester si un objet est null