Question Pb référence d'objet

Plus d'informations
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

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
Propulsé par Kunena