Question
Pb référence d'objet
- skercrow
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 13 ans 6 mois #12607
par skercrow
Pb référence d'objet a été créé par skercrow
Bonjour,
Je suis en train de créer un générateur de code et je souhaite convertir mon code en PowerShell.
Je ne connais pas bien powerShell et j'ai un problème avec ce script qui est généré :
[code:1]
$trueValue = [int]1
$falseValue = [int]0
Write-Host ($trueValue -lt $falseValue)
function WriteToFile($text)
{
Write-Host -Foreground green $text
}
function getValue($val)
{
if ($val.GetType().Name.EndsWith(\"PSReference\"«»))
{
return $val.value;
}
else
{
return $val;
}
}
function debut([ref] $test)
{
if ((getValue($trueValue) -lt getValue($falseValue))) {
WriteToFile(getValue($test))
$test.value = 1
WriteToFile(getValue($test))
WriteToFile(\"
C'est vrai !\"«»)
} else {
WriteToFile(\"
C'est faux !\"«»)
}
WriteToFile(getValue($test))
WriteToFile(\"
Continuer le test :\"«»)
}
WriteToFile(\"
Test exemple :\"«»)
$test = 0
WriteToFile($test)
debut([ref] $test)
WriteToFile($test)
for($c1 = 1;$c1 -le ($test + 1);++$c1)
{
WriteToFile(\"
Hello !\"«»)
WriteToFile(getValue($c1))
}
[/code:1]
Normalement, $trueValue vaut 1 et $falseValue vaut 0.
Mais getValue($trueValue) -lt getValue($falseValue) retourne Vrai au lieu de Faux.
J'aurais besoin de savoir pourquoi et quoi faire dans ce cas pour que le test retourne Faux.
Merci d'avance
j'ai résolu mon erreur :
Write-Host ($(getValue($trueValue)) -lt $(getValue($falseValue)))
Pour l'exemple, voici un bout de code en powershell généré par CodeCommander v1.1 (codecommander.codeplex.com)
[code:1]
$trueValue = 1
$falseValue = 0
function WriteToFile($text)
{
Write-Host -Foreground green $text
}
function getValue($val)
{
if ($val.GetType().Name.EndsWith(\"PSReference\"«»))
{
return $val.value;
}
else
{
return $val;
}
}
function WhileFunction()
{
WriteToFile(\"Ce test appelle While et WhileConditional:\"«»)
$c = 0
$L1First = $true
While (($c -lt 2))
{
If (!$L1First)
{
WriteToFile(\"Next\"«»)
}
WriteToFile(\"Hello ! (from While)\"«»)
WriteToFile($c)
++$c
$L1First = $false
}
$c = 0
$cond = $true
While (($c -lt 2))
{
$cond = ($c -eq 1)
if ($cond)
{
WriteToFile(\"Hello ! (from Conditional While)\"«»)
WriteToFile($c)
}
++$c
}
}
WhileFunction
[/code:1]
Message édité par: skercrow, à: 28/08/12 19:41
Message édité par: skercrow, à: 28/08/12 22:19<br><br>Message édité par: skercrow, à: 28/08/12 22:22
Je suis en train de créer un générateur de code et je souhaite convertir mon code en PowerShell.
Je ne connais pas bien powerShell et j'ai un problème avec ce script qui est généré :
[code:1]
$trueValue = [int]1
$falseValue = [int]0
Write-Host ($trueValue -lt $falseValue)
function WriteToFile($text)
{
Write-Host -Foreground green $text
}
function getValue($val)
{
if ($val.GetType().Name.EndsWith(\"PSReference\"«»))
{
return $val.value;
}
else
{
return $val;
}
}
function debut([ref] $test)
{
if ((getValue($trueValue) -lt getValue($falseValue))) {
WriteToFile(getValue($test))
$test.value = 1
WriteToFile(getValue($test))
WriteToFile(\"
C'est vrai !\"«»)
} else {
WriteToFile(\"
C'est faux !\"«»)
}
WriteToFile(getValue($test))
WriteToFile(\"
Continuer le test :\"«»)
}
WriteToFile(\"
Test exemple :\"«»)
$test = 0
WriteToFile($test)
debut([ref] $test)
WriteToFile($test)
for($c1 = 1;$c1 -le ($test + 1);++$c1)
{
WriteToFile(\"
Hello !\"«»)
WriteToFile(getValue($c1))
}
[/code:1]
Normalement, $trueValue vaut 1 et $falseValue vaut 0.
Mais getValue($trueValue) -lt getValue($falseValue) retourne Vrai au lieu de Faux.
J'aurais besoin de savoir pourquoi et quoi faire dans ce cas pour que le test retourne Faux.
Merci d'avance
j'ai résolu mon erreur :
Write-Host ($(getValue($trueValue)) -lt $(getValue($falseValue)))
Pour l'exemple, voici un bout de code en powershell généré par CodeCommander v1.1 (codecommander.codeplex.com)
[code:1]
$trueValue = 1
$falseValue = 0
function WriteToFile($text)
{
Write-Host -Foreground green $text
}
function getValue($val)
{
if ($val.GetType().Name.EndsWith(\"PSReference\"«»))
{
return $val.value;
}
else
{
return $val;
}
}
function WhileFunction()
{
WriteToFile(\"Ce test appelle While et WhileConditional:\"«»)
$c = 0
$L1First = $true
While (($c -lt 2))
{
If (!$L1First)
{
WriteToFile(\"Next\"«»)
}
WriteToFile(\"Hello ! (from While)\"«»)
WriteToFile($c)
++$c
$L1First = $false
}
$c = 0
$cond = $true
While (($c -lt 2))
{
$cond = ($c -eq 1)
if ($cond)
{
WriteToFile(\"Hello ! (from Conditional While)\"«»)
WriteToFile($c)
}
++$c
}
}
WhileFunction
[/code:1]
Message édité par: skercrow, à: 28/08/12 19:41
La pièce jointe testWhile.ps1 est absente ou indisponible
Message édité par: skercrow, à: 28/08/12 22:19<br><br>Message édité par: skercrow, à: 28/08/12 22:22
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.037 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Pb référence d'objet