Page 1 sur 1

[R] Or non pris en compte

Posté : mer. 06 nov. 2013 15:08
par turbif08
Bonjour,

J'essaye de faire un script d'installation avec exclusion de certains ordinateurs, sauf que n'importe quel ordinateur rentre dans mon If.

Code : Tout sélectionner

If @ComputerName <> "AJSOP002" Or "AJSOP003" Or "AJSO037" Then
   RunAs("administrateur","domaine.local","password",1,"msiexec.exe /i \\srv-files\PowerPivot_for_Excel_x86.msi /passive")
   Sleep(100)
EndIf
Merci d'avance :)

Re: [..] Or non pris en compte

Posté : mer. 06 nov. 2013 15:40
par Koumla
Bonjour,

Voir comme ça pour la syntaxe

Code : Tout sélectionner

$a = 0

    If $a = "1" Or $a = "2" Or $a = "3" Then

        ConsoleWrite("meme valeur" & @CRLF)

    Else

        ConsoleWrite("valeur differente" & @CRLF)

    EndIf 
Koumla

Re: [..] Or non pris en compte

Posté : mer. 06 nov. 2013 15:42
par jchd
Le Or que tu emploies est un OU logique qui va convertir les deux valeurs pour pouvoir effectuer une comparaison qui ait un sens. Appliqué à la condition telle que tu l'as écrite, l'ensemble équivaut à :

If (@ComputerName <> "AJSOP002") Or ("AJSOP003" <> "") Or ("AJSO037" <> "") Then

Tu comprends maintenant pourquoi ta condition est indépendante de @ComputerName car les deux dernières sous-conditions sont toujours vraies.

Ce qu'il faut dans un tel cas est :

Code : Tout sélectionner

Switch @ComputerName
    Case "AJSOP002", "AJSOP003", "AJSO037"
        ; on ne touche pas aux machines taboues
    Case Else
        RunAs("administrateur","domaine.local","password",1,"msiexec.exe /i \\srv-files\PowerPivot_for_Excel_x86.msi /passive")
    Sleep(100)
EndSwitch

Re: [..] Or non pris en compte

Posté : jeu. 07 nov. 2013 09:59
par turbif08

Code : Tout sélectionner

If (@ComputerName <> "AJSOP002") Or ("AJSOP003" <> "") Or ("AJSO037" <> "") Then
Sous cet angle en effet ce n'est pas ce que je veux faire du tout, ça fonctionne, merci.